簡體   English   中英

使用套接字API查找IP地址和端口號?

[英]Finding IP address and port number using socket api?

我正在編寫一個代碼,需要查找發件人的IP地址,發件人的端口號以及由其發送的應用層數據包。

我是使用Raw Sockets(SOCK_RAW)來完成的,它運行良好並且為我完成了工作,但是它太笨拙了。

問:我可以使用SOCK_STREAM並直接獲取應用程序層數據包,與使用Raw套接字相比,這是一種非常干凈簡單的方法,但是通過這種方式,我將無法找到客戶端的IP地址和端口號。 是否有我傳遞套接字描述符的函數,它告訴我另一端的IP地址和端口號。 我讀了幾本手冊頁,但找不到。

我正在使用C語言的Linux套接字API。

提前致謝。 :)

當您調用accept()接受傳入連接時, *address是一種結構,其中填充有發送者的IP地址和端口號。

BSD套接字實現定義了一個名為getpeername()的函數,該函數允許知道tcp套接字的ip地址和遠程端的端口。

當您有任何SOCK_STREAM連接的套接字時,無論首先建立連接的是哪一側,都可以調用此函數來獲取所需的信息。 (這比原始套接字要容易得多)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM