我想使用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()
的内容吗?我还没有在文档中找到这样的功能。
谢谢你, 纪尧姆
答案 0 :(得分:0)
create_connection将创建一个TCP连接,因此它不会做你想要的。您需要使用您自己给出的示例中的原始套接字。为什么要切换到使用socket.create_connection?