![](/img/trans.png)
[英]Socket Programming using command line arguments for port number and IP address
[英]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.