Python获取ip地址的3种方法代码

 更新时间:2023年10月28日 09:32:40   作者:Demons_皮  
在Python中获取IP地址的方法有很多种,这篇文章主要给大家介绍了关于Python获取ip地址的3种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下

方法一

#获取本机IP地址
def get_local_ip():
    # s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # s.connect(('8.8.8.8', 80))
    # ip = s.getsockname()[0]
    # s.close()
    ip = socket.gethostbyname(socket.gethostname())
    return ip

运行结果:

D:\Python3.8.6\python.exe D:/PythonWorkSpace/someip/Common/get_IP_adress.py
192.168.42.44

Process finished with exit code 0

方法二

#获取公网IP地址
def get_public_ip():
    response = requests.get("http://httpbin.org/ip")
    data = response.json()
    ip = data['origin']
    return ip

运行结果:

D:\Python3.8.6\python.exe D:/PythonWorkSpace/someip/Common/get_IP_adress.py
223.76.212.244

Process finished with exit code 0

方法三

# 获取本机所有 IP 地址
def get_all_ip():
    hostname = socket.gethostname()
    ip_list = []
    # 获取IP地址信息
    addr_infos = socket.getaddrinfo(hostname, None)
    for addr in addr_infos:
        ip_list.append(addr[4][0])
    # print(ip_list)
    return ip_list

运行结果:

D:\Python3.8.6\python.exe D:/PythonWorkSpace/someip/Common/get_IP_adress.py
fe80::f439:ac0:9050:c9f
fe80::1d73:c1cf:c1ca:6d0d
fe80::9d23:6620:a01:aa33
fe80::856d:dbe3:ada3:a32a
192.168.42.44
172.29.11.5
192.168.114.1
192.168.64.1

Process finished with exit code 0

附:本机IP与127.0.0.1及localhost的区别

127.0.0.1

  • 环回地址是主机用于向自身发送通信的一个特殊地址。同一台主机上的两项服务若使用环回地址而非分配的主机地址,就可以绕开TCP/IP协议栈的下层。

  • IPv4的环回地址为:127.0.0.0到127.255.255.255都是环回地址

  • 当操作系统初始化本机的TCP/IP协议栈时,设置协议栈本身的IP地址为127.0.0.1(保留地址),并注入路由表

127.0.0.1是保留地址之一,来检验本机TCP/IP协议栈,ping 127.0.0.1一般作为测试本机TCP/IP协议栈正常与否的判断之一。

localhost

localhost首先是一个域名,也是本机地址,它可以被配置为任意的IP地址。不过通常情况下都指向:(如下)

  • IPv4:表示 127.0.0.1

  • IPv6:表示 [::1]

本机IP

本机IP,可以理解为本机有三块网卡:

  • 一块网卡叫做loopback(虚拟网卡)
  • 一块叫做ethernet(有线网卡)
  • 一块叫做wlan(你的无线网卡)

联网,网卡传输,受防火墙和网卡限制

解决方法

获取本机IP有其它的方法:

import os
import socket

gw = os.popen("ip -4 route show default").read().split()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((gw[2], 0))
ipaddr = s.getsockname()[0]
gateway = gw[2]
host = socket.gethostname()

print("IP:", ipaddr, " GW:", gateway, " Host:", host)

或者

import os
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]

print("IP:", ip) 

总结 

到此这篇关于Python获取ip地址的3种方法的文章就介绍到这了,更多相关Python获取ip地址内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决pytorch 的state_dict()拷贝问题

    解决pytorch 的state_dict()拷贝问题

    这篇文章主要介绍了解决pytorch 的state_dict()拷贝问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)

    Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)

    今天小编就为大家分享一篇Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python调用服务接口的实例

    Python调用服务接口的实例

    今天小编就为大家分享一篇Python调用服务接口的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 从训练好的tensorflow模型中打印训练变量实例

    从训练好的tensorflow模型中打印训练变量实例

    今天小编就为大家分享一篇从训练好的tensorflow模型中打印训练变量实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Pygame与OpenCV联合播放视频并保证音画同步

    Pygame与OpenCV联合播放视频并保证音画同步

    Pygame的Movie模块已经废弃多年,本文主要介绍了Pygame与OpenCV联合播放视频并保证音画同步,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • python解析库Beautiful Soup安装的详细步骤

    python解析库Beautiful Soup安装的详细步骤

    Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据,下面这篇文章主要给大家介绍了关于python解析库Beautiful Soup安装的详细步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Python的Tornado框架异步编程入门实例

    Python的Tornado框架异步编程入门实例

    这篇文章主要介绍了Python的Tornado框架异步编程入门实例,异步编程的思维与普通编程比起来有些不同,需要的朋友可以参考下
    2015-04-04
  • Python转换HTML到Text纯文本的方法

    Python转换HTML到Text纯文本的方法

    这篇文章主要介绍了Python转换HTML到Text纯文本的方法,分析了常用的两种方法,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • python 使用Tensorflow训练BP神经网络实现鸢尾花分类

    python 使用Tensorflow训练BP神经网络实现鸢尾花分类

    这篇文章主要介绍了python 使用Tensorflow训练BP神经网络实现鸢尾花分类,帮助大家更好的利用python进行深度学习,感兴趣的朋友可以了解下
    2021-05-05
  • python验证码识别实例代码

    python验证码识别实例代码

    这篇文章主要介绍了python验证码识别实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论