gethostbyname 返回的是 主机名 的IPv4 的地址格式,如果传入的参数是IPv4 的地址格式,则返回值跟参数一样,这个函数不支持IPv6 的域名解析。 gethostbyname_ex 则是扩展后的接口,传入主机名,它能够返回 一个三元组 (原始主机名,域名列表,IP地址列表),这个函数同样不支持IPv6的域名解析。我们来看一下他们到底是怎么...
在python中获取IP地址的方法很简单,我们只和gethostbyname和gethostbyname_ex两个函数可以实现了,当然也可以利用公网api来实现。使用拨号上网的话,一般都有一个本地ip和一个外网ip,使用python可以很容易的得到这两个ip使用gethostbyname和gethostbyname_ex两个函数可以实现代码如下import socketlocalIP = socke...
gethostbyname_ex()与gethostbyname() socket库包含一些与网络上的域名服务交互的函数,比如解析域名为IP地址可以用到gethostbyname_ex(),示例如下: importsocket host_str = ['www.baidu.com','cloud.tencent.com','www.csdn.net']forhostinhost_str:try: name, aliases, addresses = socket.gethostbyname_ex(host...
gethostbyname和gethostbyname_ex均是socket模块中的一个函数,都可用于来获取本地ip地址。 PS:Linux(...
importsocketdefget_mac_addresses():host_name=socket.gethostname()ip_addresses=socket.gethostbyname_ex(host_name)[-1]mac_addresses=[]forip_addressinip_addresses:mac_address=hex(int(ip_address.replace(".","")))[2:]mac_address=":".join(mac_address[i:i+2]foriinrange(0,len(mac_address...
importsocket# 获取当前主机名hostname=socket.gethostname()# 获取当前主机的所有IP地址ip_addresses=socket.gethostbyname_ex(hostname)print(f"当前主机名:{hostname}")print("当前主机的所有IP地址:")foripinip_addresses[2]:print(ip) 1. 2. 3. ...
一个方法是通过socket.gethostbyname_ex获取主机IP地址列表,然后遍历列表取得自己需要的IP。 AI检测代码解析 importsocket#多网卡情况下,根据前缀获取IP(Windows 下适用)defGetLocalIPByPrefix(prefix):localIP=''foripinsocket.gethostbyname_ex(socket.gethostname())[2]:ifip.startswith(prefix):localIP=ipreturnloca...
gethostbyname() 不支持 IPv6 名称解析,应使用 getaddrinfo() 来支持 IPv4/v6 双协议栈。 引发一个 审计事件 socket.gethostbyname,附带参数 hostname。 示例如下: import socket hostip = socket.gethostbyname(socket.gethostname()) print(hostip) 结果如下: 192.168.56.1 socket.gethostbyname_ex(hostname) ...
importsocketIP=socket.gethostbyname(socket.gethostname()) 通过gethostname获取主机名,再用gethostbyname将主机名转换为IP地址。 那么,问题来了。如果主机有多个网卡/IP,怎样获取某个指定的IP地址呢? 一个方法是通过socket.gethostbyname_ex获取主机IP地址列表,然后遍历列表取得自己需要的IP。
更完整的接口参见gethostbyname_ex()。gethostbyname()的不支持IPv6名称解析,可以使用getaddrinfo()获取IPv4/v6双协议栈支持。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 import socket for host in [’homer’,’www’,’www.python.org’,’nosuchname’ ]: try: print ’%s : %s’ % (host, ...