Python 获取本地主机 hostname 很简单,一行代码就能搞定。获取 IP 地址也一样简单,下面分享一下这些方法。都很简单,基本都是通过 Python 的 socket 库来进行获取的。Python socket 还是一个非常强大的网络功能库,很多时候配合 socketserver 使用效果更好。

一、推荐方法>>> import socket

>>> # 获取主机名

>>> hostname = socket.gethostname()

>>> hostname

'USER-20150331GI'

>>>

>>> # 获取IP地址

>>> ip = socket.gethostbyname(hostname)

>>> ip

'192.168.1.3'

对于获取 IP 地址,其实 socket.gethostbyname() 很多情况下并不能准确获取到 IP 地址,很多时候会返回一个 127.0.0.1 或者是私有 IP,下面的方法可以更准确的获取 IP 地址(也就是下方的备用方法一):import socket

def get_host_ip():

"""

查询本机ip地址

:return: ip

"""

try:

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

s.connect(('8.8.8.8', 80))

ip = s.getsockname()[0]

finally:

s.close()

return ip

if __name__ == '__main__':

print(get_host_ip())

二、备用方法

备用方法一:>>> import socket

>>> # 获取主机名

>>> hostname = socket.getfqdn(socket.gethostname())

>>> hostname

'USER-20150331GI'

>>>

>>> # 获取IP地址

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

>>> s.connect(('8.8.8.8', 80))

>>> ip = s.getsockname()[0]

>>> ip

'192.168.1.3'

备用方法二:>>> import socket

>>> hostname = socket.gethostname()

>>> ip_lists = socket.gethostbyname_ex(hostname)

>>> ip_lists

('USER-20150331GI', [], ['192.168.1.3'])

>>>

>>> # 获取主机名

>>> hostname = ip_lists[0]

>>> hostname

'USER-20150331GI'

>>>

>>> # 获取IP地址

>>> ip = lst[-1]

>>> ip

['192.168.1.3']

参考文献:

python获取主机ip_Python 获取本地主机 hostname 和 IP 地址的简单方法相关推荐

  1. 本地oracle无法通过ip地址连接解决方法(因个人环境原因可能不适用)

    本地oracle可以通过localhost连接,无法通过ip地址连接解决方法 本地安装了oracle11g r2 ,一直是自己本地玩,今天突然需要让别的同事访问我的数据库,死活连接不上,百度了很多教程 ...

  2. Delphi获得计算机系统配置,用Delphi获取本地计算机名称和IP地址

    下载本文示例代码 本程序介绍如何获取本地计算机的名称和IP地址. 向窗体上添加两个TLabel组件.两个TEdit组件和一个TButton组件,设计完成的主界面如图1所示. 图1 主界面 首先在程序的 ...

  3. java ip 获取了两个_用Java获取本地的多个IP地址

    翻API翻出来的,拿出来晒晒... 特别适用于获取本地的多个IP地址 import java.net.InetAddress; import java.net.NetworkInterface; im ...

  4. 计算机自动配置的ip地址,电脑自动获取IP地址的设置方法(图文)

    在我们使用电脑的过程中,有时候需要根据网络的需求将电脑IP地址设置为自动获取,对网络知识不太了解的朋友遇到此类问题可能不知道怎么去设置,在此小编总结了有关电脑设置自动获取IP地址的相关方法,感兴趣的朋 ...

  5. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)

    Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...

  6. php 获取 ip地址_PHP 获取ip地址的六种方法

    本篇文章主要介绍PHP 获取ip地址的六种方法,感兴趣的朋友参考下,希望对大家有所帮助. 代码一:function getip() { static $ip = ''; $ip = $_SERVER[ ...

  7. #两台主机之间通信时为什么要用IP地址,而不直接用硬件地址?

    两台主机之间通信时为什么要用IP地址,而不直接用硬件地址?   既然在网络链路上传送的数据帧最终是用硬件地址来寻找目的主机,为什么还要用IP地址进行通信,为什么不直接是用硬件地址进行通信?   首先要 ...

  8. 配置静态路由下一跳为本地出战接口和IP地址的区别

    配置静态路由下一跳为本地出战接口和IP地址的区别 在配置静态路由时,下一跳可以使用下一路由器的IP地址,也可以使用本路由器的出站接口.在点对点的网络中,两者可能没有什么差别,但在以太网中或者NBMA网 ...

  9. centos7配置IP地址CentOS7 修改hostname,ip地址以及hosts(永久生效)

    CentOS7 修改hostname,ip地址以及hosts(永久生效) https://blog.csdn.net/ntuxiaolei/article/details/81130866 在局域网内 ...

最新文章

  1. 前端开发实习生的第一天
  2. activity 启动模式_Intent#FLAG_ACTIVITY_CLEAR_TOP 真的会 clear top 吗
  3. javaweb中mysql数据库的回滚操作代码
  4. 腾讯视频如何设置画面对比度方面的内容
  5. git安装包国内镜像下载地址,速度快
  6. 《信息安全系统设计基础》实验四报告
  7. 高通第一财季营收107亿美元 净利润超过30亿美元
  8. 2020年入门数据分析选择Python还是SQL?七个常用操作对比!
  9. AIX ORACLE 迁移到ASM
  10. nginx的源码编译及相关文件配置
  11. Hadoop学习笔记(一):MapReduce工作机制
  12. 基于ServerSokect和Soket的简易Qq程序
  13. Hypermesh软件初学
  14. 二分排序(java)
  15. 计算机flash逐渐淡入,Flash air制作淡入淡出窗体动画效果
  16. python3.8安装pygame_Python3.8安装Pygame教程
  17. Ques1017勇者斗恶龙
  18. 手把手教你写网络爬虫:Web应用的漏洞检测实战篇!
  19. jadx工具windows下载
  20. OpenStack 企业私有云的若干需求(7):电信行业解决方案 NFV

热门文章

  1. 重磅:Elasticsearch上市!市值近50亿美元
  2. linux作业控制三个,10个linux 作业控制的bash 脚本实例
  3. 注册界面翻译_B站UP主自制的开源OCR翻译器走红Github,用一次就粉了
  4. 在python中print 应用_Python print正确使用方法浅析
  5. 提高安全意识,保护自身安全
  6. CSS样式----块级元素和行内元素
  7. paddle_ocr1.0入门踩坑
  8. 模块计算机类型x64与目标计算机类型X86冲突
  9. has no attribute 'xw_plus_b'
  10. VS2010-2015对C++11/14/17特性的支持