Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将传出套接字绑定到特定(虚拟)适配器_Python_Linux_Sockets - Fatal编程技术网

Python 将传出套接字绑定到特定(虚拟)适配器

Python 将传出套接字绑定到特定(虚拟)适配器,python,linux,sockets,Python,Linux,Sockets,是否可以将套接字绑定到特定的虚拟适配器? 以下Python代码适用于真正的适配器,例如eth0适用于电缆,wlan0适用于wifi: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, 25, b"eth0") 但是,当我尝试将套接字绑定到虚拟适配器(例如eth0:0)时,会出现错误OSError:[Errno 19]没有这样的设备 我的虚拟适配器似乎工作正常,否则可以pin

是否可以将套接字绑定到特定的虚拟适配器? 以下Python代码适用于真正的适配器,例如eth0适用于电缆,wlan0适用于wifi:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, 25, b"eth0")
但是,当我尝试将套接字绑定到虚拟适配器(例如eth0:0)时,会出现错误OSError:[Errno 19]没有这样的设备

我的虚拟适配器似乎工作正常,否则可以ping正常


基本上,我要做的是从分配给虚拟适配器的特定ip生成传出流量。其目的是使用一台计算机在网络上加载/全面测试嵌入式设备。

您应该知道,对于内核,这些eth0和eth0:1是相同的接口eth0。 标签或“别名”,如eth0:1实际上,您可以使用一些更好的用户友好标签,如eth0:internal\u net仅用于系统管理员,而不用于应用程序
所以你应该依赖于源IP或者让内核自动选择它,根据路由表

你说你在bind中出错了,bind代码在哪里?通常,您可以使用一台主机进行绑定,该主机的IP地址和端口号不需要接口名称或索引,例如s.bind'10.10.10',3003@cmidi,我的问题是传出连接,不接受传入连接。设置套接字选项时引发错误。希望这更清楚:“s=socket.socketsocket.AF_INET,socket.SOCK_STREAM”s.setsockoptsocket.SOL_socket,25,适配器“”s.connectADDRESS,端口“”s.sendmsg”