在python中是否可以将域绑定到指定的IP?

在python中是否可以将域绑定到指定的IP?,python,Python,当我将python脚本与一些LIB(例如urllib2或请求)一起使用以获取网页时,是否可以将域绑定到该python环境中的指定IP 我知道我可以在hosts文件中将域绑定到IP,但这会影响某些机器上运行的其他进程 我正在寻找一种将域绑定到python脚本中的IP的方法,如下所示: import requests bind_domain2IP(DOMAIN, IP) r = requests.get(DOMAIN) 有人对此有经验吗?非常感谢您的建议。是的,但它相当先进。如果使用请求,则可以

当我将python脚本与一些LIB(例如
urllib2
请求
)一起使用以获取网页时,是否可以将域绑定到该python环境中的指定IP

我知道我可以在
hosts
文件中将域绑定到IP,但这会影响某些机器上运行的其他进程

我正在寻找一种将域绑定到python脚本中的IP的方法,如下所示:

import requests
bind_domain2IP(DOMAIN, IP)
r = requests.get(DOMAIN) 

有人对此有经验吗?非常感谢您的建议。

是的,但它相当先进。如果使用
请求
,则可以为给定域配置一个,以控制如何处理该http请求


例如,您可以在适配器中创建一个自定义的
HTTPAdapter
并覆盖
get\u connection()
,以使urllib3连接到您选择的特定IP,而不是提供的原始域。

采用一种简单的方法,您可以使用具有域/IP关联的字典,直接连接到IP地址,并将主机HTTP头设置为原始主机名>

导入请求

hosts = {
    'webserver.local': '192.168.1.1'
}

def myreq(hostname, path):
    headers = {}
    if hostname in hosts:
        headers['Host'] = hostname
        hostname = hosts[hostname]
    url = 'http://%s%s' % (hostname, path)
    return requests.get(url, headers=headers)

r = myreq('webserver.local', '/index.html')

您可以使用sqlite将值绑定为仅适用于您的脚本或使用DictonaryThank,我将按照您的建议进行尝试。呃,我已经考虑过这个问题。但是如果一个链接给出302重定向包含一个域怎么办?这样就没有机会将域映射到ip。然后您可以在get_connection()中使用此逻辑,如前面的答案所述。