在Python3中获取本机IP(Linux环境下)

备注:本文代码适用于Linux环境下Python3。

概述:

    本方法是通过输入本机的网卡名称,获取本机的IP地址。

步骤简述:

    1、查看本机的网卡

    2、记录下想要查询IP地址的网卡名称

    3、将网卡名称输入到get_ip()函数的参数中

    4、运行.py文件

具体步骤:(以我的运行环境为例:VMware 12 pro,Ubuntu 18.04,Pyhon3)

    1、查询本机网卡,记录下网卡名为非 lo 的网卡名字:

        在终端输入命令: ifconfig

        在回复的信息左侧(以下图为例),可以看到有两个网卡名称,一个是 ens33 ,另一个是 lo。我们一般选择网卡名称是非 lo 来查询本机IP地址,因为 lo 网卡的IP地址都是 127.0.0.1,并不是我们想要的。因此,我选择 ens33 作为我要查询本机IP地址的网卡。

在Python3中获取本机IP(Linux环境下)_第1张图片

    2、创建 test_server-socket.py ,并输入以下代码:

        在终端输入命令:vim test_getip.py,并粘贴以下命令进去,在最后一行的代码中,修改get_ip()的参数,修改成自己电脑的网卡名称,最后保存退出。

#!/usr/bin/python3
import socket,struct,fcntl

def get_ip(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', bytes(ifname[:15],'utf-8')))[20:24])

print("server ip:",get_ip('ens33'))

   3、运行 getip.py 文件

        在终端输入命令: ./getip.py,结果如下图。


本文参考自以下链接,并针对Python3做出了相应的修改:https://stackoverflow.com/questions/24196932/how-can-i-get-the-ip-address-of-eth0-in-python/24196955#24196955

你可能感兴趣的:(Pytho3学习)