采用socket API查找IP地址和端口号?
问题描述:
我工作的一个代码,我也需要找到发送者的IP地址,发送者的端口号,并通过它发送的应用层数据包。采用socket API查找IP地址和端口号?
我这样做是使用原始套接字(SOCK_RAW),它运行良好,并做了工作的我,但其过于笨拙。
问题:我可以使用SOCK_STREAM,并直接将应用层数据包,这是很干净,简单的方法比使用原始套接字,但这样一来我就无法找到客户端的IP地址和端口号。有没有办法,我通过socket描述的任何功能,它告诉我另一端的IP地址和端口号。我阅读了几页手册,但找不到任何内容。
我正在使用C语言编写的Linux套接字API。
在此先感谢。 :)
答
的BSD套接字实现定义一个名为getpeername()
功能,让知道的IP地址和TCP套接字的远程端的端口。
,当你有任何SOCK_STREAM连接插座,不管哪方先建立连接,你可以调用这个函数来得到你所需要的信息。 (这比原始套接字要容易得多)。
+0
我知道,链接指向的MSDN,但功能应该是在两个系统上是相同的。 – 2011-01-19 16:24:13
什么编程语言? C? – 2011-01-19 16:20:14
哦!我很抱歉,我用C在linux下使用套接字API – Durin 2011-01-19 16:21:17