Python获取本机IP地址的三种方式

这篇具有很好参考价值的文章主要介绍了Python获取本机IP地址的三种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、使用专用网址

2、使用自带socket库

3、使用第三方netifaces库


1、使用专用网站

获取的是公网IP

网址:http://myip.ipip.net

代码:


   
   
  1. import requests
  2. res = requests.get( 'https://myip.ipip.net', timeout= 5).text
  3. print(res)

具体可以类似这样:


   
   
  1. import requests
  2. import re
  3. def getOutterIP():
  4. ip = ''
  5. try:
  6. res = requests.get( 'https://myip.ipip.net', timeout= 5).text
  7. ip = re.findall( r'(\d+\.\d+\.\d+\.\d+)', res)
  8. ip = ip[ 0] if ip else ''
  9. except:
  10. pass
  11. return ip

python 获取本机ip,python,tcp/ip,开发语言

 比较喜欢用这个,在命令窗口也能使用:

curl https://myip.ipip.net
   
   

python 获取本机ip,python,tcp/ip,开发语言

还可以用这个:https://api.ipify.org

2、使用自带socket库

获取的是局域网IP


   
   
  1. import socket
  2. # 函数 gethostname() 返回当前正在执行 Python 的系统主机名
  3. res = socket.gethostbyname(socket.gethostname())
  4. print(res)

但是上面这个获取的不是公网IP,结果也不稳定(这里获取了虚拟机下的IP),不建议使用。

python 获取本机ip,python,tcp/ip,开发语言

 如果计算机设备有连接到 Internet 的路由,可以使用:


   
   
  1. import socket
  2. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  3. s.connect(( "8.8.8.8", 80))
  4. print(s.getsockname()[ 0])

这个获得的是局域网IP:

python 获取本机ip,python,tcp/ip,开发语言

可以ipconfig看一下:

python 获取本机ip,python,tcp/ip,开发语言

另一个适用于所有接口。它还适用于所有公共、私有、外部 IP。这种方法在 Linux、Windows 和 OSX 上很有效。


   
   
  1. import socket
  2. def extract_ip():
  3. st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  4. try:
  5. st.connect(( '10.255.255.255', 1))
  6. IP = st.getsockname()[ 0]
  7. except Exception:
  8. IP = '127.0.0.1'
  9. finally:
  10. st.close()
  11. return IP
  12. print(extract_ip())

注意:如果本身局域网IP就是公网IP的话,那这个获得的,可以认为是公网IP了。

3、使用第三方netifaces库

获取的是局域网IP

netifaces 模块用于提供有关网络接口及其状态的信息。

代码:

没装的先装一下库

pip3 install netifaces
   
   

然后使用


   
   
  1. from netifaces import interfaces, ifaddresses, AF_INET
  2. for ifaceName in interfaces():
  3. addresses = [i[ 'addr'] for i in ifaddresses(ifaceName).setdefault(AF_INET, [{ 'addr': 'No IP addr'}] )]
  4. print( ' '.join(addresses))

python 获取本机ip,python,tcp/ip,开发语言文章来源地址https://www.toymoban.com/news/detail-759251.html

目录

1、使用专用网址

2、使用自带socket库

3、使用第三方netifaces库


1、使用专用网站

获取的是公网IP

网址:http://myip.ipip.net

代码:


   
   
  1. import requests
  2. res = requests.get( 'https://myip.ipip.net', timeout= 5).text
  3. print(res)

具体可以类似这样:


   
   
  1. import requests
  2. import re
  3. def getOutterIP():
  4. ip = ''
  5. try:
  6. res = requests.get( 'https://myip.ipip.net', timeout= 5).text
  7. ip = re.findall( r'(\d+\.\d+\.\d+\.\d+)', res)
  8. ip = ip[ 0] if ip else ''
  9. except:
  10. pass
  11. return ip

python 获取本机ip,python,tcp/ip,开发语言

 比较喜欢用这个,在命令窗口也能使用:

curl https://myip.ipip.net
   
   

python 获取本机ip,python,tcp/ip,开发语言

还可以用这个:https://api.ipify.org

2、使用自带socket库

获取的是局域网IP


   
   
  1. import socket
  2. # 函数 gethostname() 返回当前正在执行 Python 的系统主机名
  3. res = socket.gethostbyname(socket.gethostname())
  4. print(res)

但是上面这个获取的不是公网IP,结果也不稳定(这里获取了虚拟机下的IP),不建议使用。

python 获取本机ip,python,tcp/ip,开发语言

 如果计算机设备有连接到 Internet 的路由,可以使用:


   
   
  1. import socket
  2. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  3. s.connect(( "8.8.8.8", 80))
  4. print(s.getsockname()[ 0])

这个获得的是局域网IP:

python 获取本机ip,python,tcp/ip,开发语言

可以ipconfig看一下:

python 获取本机ip,python,tcp/ip,开发语言

另一个适用于所有接口。它还适用于所有公共、私有、外部 IP。这种方法在 Linux、Windows 和 OSX 上很有效。


   
   
  1. import socket
  2. def extract_ip():
  3. st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  4. try:
  5. st.connect(( '10.255.255.255', 1))
  6. IP = st.getsockname()[ 0]
  7. except Exception:
  8. IP = '127.0.0.1'
  9. finally:
  10. st.close()
  11. return IP
  12. print(extract_ip())

注意:如果本身局域网IP就是公网IP的话,那这个获得的,可以认为是公网IP了。

3、使用第三方netifaces库

获取的是局域网IP

netifaces 模块用于提供有关网络接口及其状态的信息。

代码:

没装的先装一下库

pip3 install netifaces
   
   

然后使用


   
   
  1. from netifaces import interfaces, ifaddresses, AF_INET
  2. for ifaceName in interfaces():
  3. addresses = [i[ 'addr'] for i in ifaddresses(ifaceName).setdefault(AF_INET, [{ 'addr': 'No IP addr'}] )]
  4. print( ' '.join(addresses))

python 获取本机ip,python,tcp/ip,开发语言

到了这里,关于Python获取本机IP地址的三种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript 如何获取本机IP地址

    获取本机IP地址是前端工程师经常需要处理的问题。JavaScript 有几种方法可以获取客户端的IP地址。下面是三种获取本机IP的方法。 方法1:使用第三方 API 一种获取客户端IP地址的最简单方法是使用第三方API。可以使用一些免费API,例如ipify.org等来获取IP地址。下面的代码片段展

    2024年02月04日
    浏览(41)
  • Qt 获取本机IP地址及Mac地址

    首先需要在pro文件中添加network模块 添加头文件 以下是获取IP地址代码 获取MAC地址 测试应用输出

    2024年02月09日
    浏览(34)
  • Vue.js 如何获取本机 IP 地址

    在 Vue.js 中,要获取本机 IP 地址,你可以使用 JavaScript 来实现。JavaScript 提供了一种获取客户端 IP 地址的方法,可以通过浏览器的 API 来获取。下面是一个示例代码,演示了如何在 Vue.js 中获取本机 IP 地址。 首先,你需要在 Vue 组件中创建一个方法,需要在 Vue 组件中创建一个

    2024年02月04日
    浏览(41)
  • 终止python代码运行的三种方式

    一 sys.exit() 执行这条语句会直接退出程序,也是常用的方法,不需要考虑平台等因素的影响。它通常是退出 Python 程序的首选方法。 该方法包含一个参数status,默认为0,表示正常退出,或1,表示异常退出。 此方法引发 SystemExit 异常(这是唯一不被视为错误的异常)。当这个

    2024年02月05日
    浏览(27)
  • Linux c语言获取本机网关 ip 地址

    这篇文章写了获取本机的ip地址和子网掩码:Linux c语言获取本机 ip、子网掩码 关于Netlink套接字请参考:Linux 网络之netlink 简介 Linux Netlink套接字是一种用于在Linux内核和用户空间之间进行通信的机制。它是Linux内核中的一种通信协议,用于让用户空间程序与内核进行交互。使用

    2024年02月07日
    浏览(36)
  • python生成excel文件的三种方式

    在我们做平常工作中都会遇到操作excel,那么今天写一篇,如何通过python操作excel。当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别,大家一起来看看吧~ xlrd是对于Excel进行读取,xlrd 操作的是xls/xlxs格式的excel xlwt是对于Excel进

    2024年02月15日
    浏览(29)
  • Qt 获取本机 ip地址方法 获取客户端ip和端口的方法

    上述函数返回本机所有IPv4的ip地址列表,比如192.168.1.10|192.166.1.95 其它方法=》 获取客户端IP地址:

    2024年02月14日
    浏览(30)
  • 用python给照片添加水印的三种方式

    方式1:PIL模块 给照片添加水印的代码多种多样,下面这种的或许是最为简单的形式, 方式2:用opencv模块 用opencv来给图片添加水印,主要用到的是cv2.putText()方法,里面共有大概9个参数,介绍如下: image :印有水印的图片 text :水印的具体文字 org :水印放置的横纵坐标,

    2024年02月11日
    浏览(27)
  • 隐藏IP地址的三种方法

    随着互联网的不断发展,用户们在日常使用通信设备请求网站时的风险也在不断增大。因为IP 地址对 Internet 上的每个人都是可见的。根据 IP 地址,其他互联网用户可以跟踪用户的定位、用户使用哪个提供商连接到互联网等等。因此许多用户都在寻求保护IP地址的方法,接下来

    2024年02月12日
    浏览(40)
  • 银河麒麟(linux 架构aarch64) 获取本机所有IP地址

    环境: 版本:银河麒麟桌面操作系统V10(SP1) 内核:Linux 5.4.18-35-generic CPU:Phytium,D2000/8 终端输入 uname -m 查看 架构 aarch64 在windows 上 和 银河麒麟(linux loongarch64) 使用下面的代码获取IP地址: 银河麒麟(linux) gethostname 获取不到IP地址_程序媛zcx的博客-CSDN博客_银河麒麟查看ip地

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包