获取计算机名
# 获取计算机名,常用的方法有三种,但最常用的是第一种
import os
import socket
# method one
name = socket.gethostname()
print(name) # hanser
# method two
name = os.popen("hostname").read()
print(name) # hanser
# method three
name = os.environ.get("COMPUTERNAME")
print(name) # HANSER
获取IP地址,windows有效
# 获取ip地址也比较简单
import socket
# 但是要先获取计算机名
name = socket.gethostname()
# 然后通过计算机名获取ip
ip = socket.gethostbyname(name)
print(ip) # 192.88.88.107
获取IP地址,windows和linux通用
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
print(ip) # 172.27.16.3
# 此时就正确的获取了Linux机器的ip地址。
# 另外,这种方式获取的一直是本机的ip地址。什么意思呢,我们以Windows为例。
# 如果你挂了"威批恩",那么gethostbyname显示的就是你"威批恩"连接的地址,而当前这种方式显示的还是你本机的地址
获取IP地址,linux可用
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])
# 获取回环地址
print(get_ip_address(b"lo")) # 127.0.0.1
# 获取本地地址
print(get_ip_address(b"eth0")) # 172.27.16.3
获取其它网站IP
import socket
# 获取百度的ip
print(socket.gethostbyname("www.baidu.com")) # 61.135.169.121
转载请注明:有客帮 » python获取计算机名、IP、mac