最新消息:本站所有跳转向bbs.ykit.cn的附件将全面停止,附件已转移到https://www.qingsj.com

python获取计算机名、IP、mac

Python 有客 34浏览

获取计算机名

# 获取计算机名,常用的方法有三种,但最常用的是第一种
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