2011-10-30 74 views
-1

有一個服務器監聽到給定端口的傳入連接。假設服務器爲172.16.5.26和端口是4099.當我掃描這是如何獲取客戶端生成TCP半開連接的IP地址?

nmap 172.16.5.26 -p 4099 

我能夠獲得客戶端的IP地址。但是當請求TCP半開連接時,因爲

nmap -sS 172.16.5.26 -p 4099 

我無法獲取客戶端的IP地址。我在找java中的一個方法來完成這個任務。如果在java庫中沒有這樣的內置方法,有什麼辦法來完成任務?

+0

@tendua,你的問題假設人們不僅要熟悉Java,還要熟悉nmap命令行。你能否更好地解釋一下你需要什麼,這樣大家就能理解你,而不必閱讀nmap手冊頁? – AlexR

+0

@AlexR:我只用nmap來產生對服務器的請求。第一個命令簡單地生成完整的TCP連接,而第二個命令生成TCP半開放連接。任何可以做到這一點的都是合適的。我使用nmap來簡化它。 –

回答

2

Socket.getRemoteAddess()和朋友。但是,這些假設連接到您的JVM,並且這是相應的套接字。如果你正在尋找一種Java方法來在主機的任何地方找到任意的半開連接,那麼就沒有一個。

這裏的動機是什麼?你爲什麼需要這個?

+0

我不知道識別SYN洪水攻擊是一件困難的事情。 –

+0

@我沒有說這很困難,但是在Java中除了我引用的條件外,它依然不可能。但是,你沒有說這就是你想要的。在你的問題中提及它會是有用的。 – EJP

相關問題