搜索(Python socket bind interface):http://search.aol.com/aol/search?q=python+socket+bind+interface
- http://stackoverflow.com/questions/335607/how-do-i-make-an-outgoing-socket-to-a-specific-network-interface
- http://stackoverflow.com/questions/8437726/can-python-select-what-network-adapter-when-opening-a-socket
指定连接到Internet的网卡:
- Get the IP address for the interface that you want.
import socket import fcntl import struct def get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, struct.pack('256s', ifname[:15]) )[20:24]) You can use it like this: >>> get_ip_address('lo') '127.0.0.1' >>> get_ip_address('eth0') '38.113.228.130'
Source: http://code.activestate.com/recipes/439094-get-the-ip-address-associated-with-a-network-inter/
- Create a new socket bind it to your interface.
import socket s = socket.socket() s.bind((get_ip_address('eth0'), 0))
- And then:
s.connect(('http://www.google.com/', 80))
- http://www.pythonforpentesting.com/2014/03/python-raw-sockets.html
- https://github.com/offensive-python/Sniffy/blob/master/Sniffy.py
比较好的参考链接:
- http://www.pythonforpentesting.com/2014/09/packet-injection-capturing-response.html
- http://www.pythonforpentesting.com/2014/08/tcp-packet-injection-with-python.html
- https://github.com/OffensivePython
- http://www.binarytides.com/category/sockets/python-sockets-sockets/
- https://docs.python.org/2/library/socket.html
在Windows和Linux系统上面socket模块里面有的内容有一些都不一样o(╯□╰)o,在Windows上OK:
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)# Enable promiscuous mode In [3]: socket.SIO_RCVALL Out[3]: 2550136833L In [4]: socket.RCVALL_ON Out[4]: 1
在Linux上会出现错误:
In [47]: socket.RCVALL_ON ... AttributeError: 'module' object has no attribute 'RCVALL_ON' ... AttributeError: 'module' object has no attribute 'SIO_RCVALL'
所以文章:http://www.pythonforpentesting.com/2014/03/python-raw-sockets.html 中介绍的无法用于Linux系统上。
不过在文章:
http://www.pythonforpentesting.com/2014/09/packet-injection-capturing-response.html,中提到的绑定指定网卡,可以有:
《“在Python中用socket捕获指定网卡的流量”》 有 1 条评论
python网速控制
https://caden16.github.io/python/python%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6/
接口限流实践
http://www.cnblogs.com/LBSer/p/4083131.html