爱收集资源网

获取本地源端口号的方法

网络整理 2023-10-02 05:03

这篇文章主要介绍了linuxsocket通信获取本地的源端标语的相关资料,须要的同学可以参考下

关于TCPIP网路通信的资料十分多,TCPIP通过IP数据包模式进行端对端通信。典型的TCP数据包如下

#f:2:a:b:6:6:3:1:8:8:e:1:1:c:a:5:a:0:c:1:6:9:0:8:b:2:a:0:4:b:c:f#

可以看见数据鞋子含了源端标语和目的端标语,顾客端socket向服务端发起联接时,系统会给socket随机分配一个源端标语,我们可以通过getsocketname来获取联接成功的socket的原端口信息。

函数原型

#f:1:f:2:b:f:d:b:9:3:2:7:7:3:a:8:d:3:d:e:2:0:a:2:4:1:8:6:3:8:c:2#

参数:

sockfdsocket联接的句柄

addr网路地址表针,拿来储存本地端socket地址信息,

addrlenaddr的空间大小

返回结果,假若调用成功,返回0,并将本地网路地址信息储存在addr上面,失败返回-1,并通过errno反应错误信息。

source_port.cpp

#5:b:1:e:9:b:c:6:9:e:d:3:8:e:f:c:2:1:9:9:6:2:d:e:b:5:5:2:7:0:e:6#

本程序首先会启动一个socket联接一个普通的http服务器(baidu,qq,163,csdn),当socket连通时就通过getsocketname获取联接绑定的本地地址,并通过该地址获取源端标语。

终端1:编译及运行

#a:5:8:7:9:d:b:2:6:4:6:e:8:9:3:4:5:8:a:1:c:7:7:6:f:b:8:8:d:3:f:1#

终端2:通过tcpdump抓包验证

#d:e:b:2:5:3:c:4:f:5:5:2:b:8:f:3:9:a:7:a:a:e:3:7:2:a:f:5:1:c:8:3#

对比终端一和终端二表明获取的源端口地址是正确的。

总结

land攻击源端口目的端