通过Python在windows和linux中获取当前网络IP地址的一些方法

本文介绍了三种在Ubuntu 16.04和Python 2.7环境下获取当前网络IP地址的方法,包括使用socket.gethostbyname、socket.gethostbyname_ex以及通过指定网卡接口名字。前两种方法通常返回'127.0.0.1',而第三种方法能有效解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取当前网络的IP地址主流的方式有三种,我实验时,环境是ubuntu16.04,基于Python2.7,发现前两种都是获取的‘127.0.0.1’,这不是我想要的,而第三种这可以很好的解决我的问题,下面列出这三种方法:

方法一:通过socket.gethostbyname方法获得

import socket
localIP = socket.gethostbyname(socket.gethostname())#得到本地ip
print "local ip:%s "%localIP

方法二:通过socket.gethostbyname_ex方法获得本机主机名和ip地址列表

import socket
ipList = socket.gethostbyname_ex(socket.gethostname())
print(ipList)

方法三:通过指定网卡接口的名字

import socket, fcntl, struct

def get_ip(ifname):

        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

         return socket.inet_ntoa(fcntl.ioctl(s.fileno(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值