1

我想用来socket.create_connection()在 python 的 ping 实现中设置源地址。

但是我怎样才能设置类型和协议呢?因为,之前,我做过:

icmp = socket.getprotobyname("icmp") 
my_socket = socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp) 

但现在,我这样做:

src_addr = socket.gethostbyname(src_addr) 
dest_addr = socket.gethostbyname(dest_addr) 
my_socket = socket.create_connection(dest_addr, socket.getdefaulttimeout(), src_addr) 

有没有类似的东西my_socket.setproto()?我在文档中没有找到这样的功能。

谢谢你,纪尧姆

4

1 回答 1

0

create_connection 将创建一个 TCP 连接,所以它不会做你想做的事。您需要使用原始套接字,就像您给自己的示例一样。为什么要切换到使用socket.create_connection?

于 2012-08-20T10:30:43.593 回答