-
安装Python 第三方库
pip install netifaces
pip install requests-toolbelt
-
指定某特定网卡信息发送HTTP请求,实际这里就是指定该特定网卡的IP地址
import requests
from requests_toolbelt.adapters.source import SourceAddressAdapter
s = requests.Session()
s.mount('http://', SourceAddressAdapter('192.168.121.1'))
s.mount('https://', SourceAddressAdapter(('192.168.121.1', 8999)))
s.post(url="http://192.168.121.144:8083/test/", json={"code":200})
-
小技巧:已知网卡的名称,获取这个网卡的IP地址
from netifaces import interfaces, ifaddresses, AF_INET, AF_INET6
import winreg
import platform
def get_ipv4_address(key_name):
if platform.system() == "Linux":
try:
return ifaddresses(key_name)[AF_INET][0]['addr']
except ValueError:
return None
elif platform.system() == "Windows":
key = get_key(key_name)
if not key:
return
else:
return ifaddresses(key)[AF_INET][0]['addr']
elif platform.system() == 'MacOS':
pass
else:
print('您的系统本程序暂时不支持,目前只支持Linux、Windows、MacOS')
def get_ipv6_address(key_name):
if platform.system() == "Linux":
try:
return ifaddresses(key_name)[AF_INET6][0]['addr']
except ValueError:
return None
elif platform.system() == "Windows":
key = get_key(key_name)
if not key:
return
else:
return ifaddresses(key)[AF_INET6][0]['addr']
elif platform.system() == 'MacOS':
pass
else:
print('您的系统本程序暂时不支持,目前只支持Linux、Windows、MacOS')
def get_key(key_name):
keys = interfaces()
key_name_dict = {}
try:
reg = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE)
reg_key = winreg.OpenKey(reg , r'SYSTEM\CurrentControlSet\Control\Network\{4d36e972-e325-11ce-bfc1-08002be10318}')
except Exception as e:
return '路径出错或者其他问题,请仔细检查'
for key in keys:
try:
reg_subkey = winreg.OpenKey(reg_key , key + r'\Connection')
key_name_dict[winreg.QueryValueEx(reg_subkey , 'Name')[0]] = key
except FileNotFoundError:
pass
return key_name_dict[key_name]
if __name__ == '__main__':
print('你的ipv4地址是:' + get_ipv4_address('以太网'))
print('你的ipv6地址是:' + get_ipv6_address('以太网'))
==== :运行结果: ==============================
你的ipv4地址是:192.168.121.1
你的ipv6地址是:fe80::35f0:4ce7:b0d8:4151%16
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)