我的Raspberry Pi上有多个网络接口,它们都有相同的IP地址(192.168.3.1),但名称如下:eth1、eth2等
即使IP地址相同,是否有办法通过特定的网络接口发出请求?例如,运行eth2
这是我正在尝试运行的代码:
class Modem(object):
BASE_URL = 'http://{host}'
TOKEN_URL = '/api/webserver/SesTokInfo'
session = None
def __init__(self,host='192.168.3.1'):
self.host = host
self.base_url = self.BASE_URL.format(host=host)
self.session = requests.Session()
def switch_modem(self, state='02'):
try:
# Get session and verification tokens from the modem
r = self.session.get(self.base_url + self.TOKEN_URL, timeout=10)
_dict = xmltodict.parse(r.text).get('response', None)
使用足够新鲜的请求和urllib,您可以传递额外的套接字选项。见:https://stackoverflow.com/a/35278688/745924
您可以使用它在发出请求之前在套接字上设置SO_BINDTODEVICE。例如:
这样做会破坏链路和ip层的分离。它确实需要root,并且由于许多其他原因可能无法工作
相关问题 更多 >
编程相关推荐