[ask]Java JNI: TCP SYN để check port ip

Discussion in 'Hỏi Đáp Kỹ Thuật' started by wpresources, Mar 23, 2021.

  1. wpresources

    wpresources Bang Chúng

    Diễn đàn không làm lập trình nhưng có nhiều cao nhân.Em đã bí lối không làm được nên em xin phép lại chạy lên hỏi code ạ mong các pro giúp hay gợi ý cho chút ạ.

    Em muốn viết một chương trình dùng để check xem port của ip nó mở hay chưa.

    1.Socket java bình thường=>Nhược tốc độ chậm,xem lý thuyết thì check bằng TCP SYN nó có thể nhanh hơn gấp chục lần
    Code:
    public static String checkPort(String ip) {
            try (Socket socket = new Socket()) {
                socket.connect(new InetSocketAddress(ip, 22), 6000);
            }
    }
    nmap -sS đã áp dụng TCP SYN nó nhanh hơn nhưng không hỗ trợ luồng.Có cố cũng ko được do nmap nó nặng quá
    Code:
    private static void checkPortNmap(String ip) {
        ProcessBuilder processBuilder = new ProcessBuilder().redirectErrorStream(true);
        processBuilder.command("bash", "-c", "nmap -Pn -sS -p22 " + ip);   
    }
    Em được tư vấn tìm hiểu được cách sử dụng thư viện dưới đây.
    https://www.savarese.com/software/rocksaw/
    =>Vấn đề của em là
    1.Làm sao để nhúng cái thư viện kia vào project của mình trước đã mình chưa từng làm jni bao giờ mà khái niệm nó cũng khó hiểu quá
    2.Nếu bác nào đã làm thì cho em cái mã thì tốt quá ạ
     
  2. Cái bang

    Cái bang Sơ Nhập Giang Hồ

    Nhanh nhất là dùng nmap để scan. M chưa thấy thư viện nào scan nhanh hơn nmap cả, scan quá nhanh, thì có thể router sẽ không chịu được, và cho kết quả sai.
    Dùng nmap scan port 22 của 4 tỉ IPv4 hết khoảng vài ngày. Tuỳ thuộc vào cái router nhà b nữa.
     
    Last edited: Mar 23, 2021
    wpresources likes this.
  3. wpresources

    wpresources Bang Chúng

    Đấy là một tốc độ cực khủng,bạn làm thế nào thế :D.Mình test 1k ip trên 5$ vultr=146s rồi.
     
    Last edited: Mar 23, 2021
  4. firefox

    firefox Bang Chúng

    masscan nhanh và nhẹ hơn nmap, trong điều kiện lý tưởng nó đẩy tầm 10m rps
     
    wpresources likes this.
  5. wpresources

    wpresources Bang Chúng

    Masscan nói có thể tăng 100,000 packets/second.Vậy cái packets đó là gì bác nhỉ
     
  6. firefox

    firefox Bang Chúng

    trong trường hợp của bác thì cứ hiểu nôm na nó là 1 lần check. 1 phiên TCP nó xác thực kết nối thông qua bắt tay ba bước, SYN là bước đầu tiên. 1 bước có thể tạm gọi là 1 package tùy trường hợp
     
  7. wpresources

    wpresources Bang Chúng

    Uhm mình hiểu rồi cảm ơn nhiều {loveyou}
     
  8. Cái bang

    Cái bang Sơ Nhập Giang Hồ

    nmap mà chạy trên VPS là bị host provider nó lock VPS phút mốt luôn, trừ khi scan chậm lại.
     
  9. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Thật ra có tut để scan ko bị lock, củng như là tut scan ssh vậy đó thím.
     
  10. wpresources

    wpresources Bang Chúng

    Cái này đơn giản có thể thuê vps từ VN là được.