您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中从NIC获取IP地址?

如何在Python中从NIC获取IP地址?

两种方法

您需要询问绑定到eth0接口的IP地址。可从@L_404_0@

import netifaces as ni
ni.ifaddresses('eth0')
ip = ni.ifaddresses('eth0')[ni.AF_INET][0]['addr']
print ip  # should print "192.168.100.37"

您还可以通过以下方式获取所有可用接口的列表

ni.interfaces()

这是一种无需使用python包即可获取IP地址的方法

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,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])

get_ip_address('eth0')  # '192.168.0.110'

注意:检测IP地址以确定您正在使用的环境是很不容易的事情。几乎所有框架都提供了一种非常简单的方法来设置/修改环境变量以指示当前环境。尝试查看有关此内容的文档。它应该像做一样简单

if app.config['ENV'] == 'production':
  #send production email
else:
  #send development email
python 2022/1/1 18:31:20 有199人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶