返回顶部
首页 > 资讯 > 后端开发 > Python >Python获取本机 IP/MAC(多网
  • 259
分享到

Python获取本机 IP/MAC(多网

本机PythonIP 2023-01-31 03:01:42 259人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

  python获取本机IP地址的一般方法为import Socket IP = socket.gethostbyname(socket.gethostname())  通过gethostname获取主机名,再用gethostbyname

  python获取本机IP地址的一般方法为

import Socket

IP = socket.gethostbyname(socket.gethostname())

  通过gethostname获取主机名,再用gethostbyname将主机名转换为IP地址。

  那么,问题来了。如果主机有多个网卡/IP,怎样获取某个指定的IP地址呢?

  一个方法是通过socket.gethostbyname_ex获取主机IP地址列表,然后遍历列表取得自己需要的IP。

import socket

#多网卡情况下,根据前缀获取IP(windows 下适用)
def GetLocalIPByPrefix(prefix):
	localIP = ''
	for ip in socket.gethostbyname_ex(socket.gethostname())[2]:
		if ip.startswith(prefix):
			localIP = ip
	
	return localIP
	
	
print(GetLocalIPByPrefix('192.168'))

  更简单的方法(不用修改代码,还是用socket.gethostname函数),是通过配置hosts文件改变IP优先级。

  上面的方法只支持IPv4,如果要获取IPv6信息,参考socket.getaddrinfo。


*** Updated 2018-03-08 ***

1、用系统库获取单机 Mac 地址。

import uuid

# 针对单网卡
def GetMAC():
	addr = hex(uuid.getnode())[2:].upper()
	
	return '-'.join(addr[i:i+2] for i in range(0, len(addr), 2))

2、用第三方库 psutil 打印网络适配器信息。

import psutil

# 打印多网卡 mac 和 ip 信息
def PrintNetIfAddr():
    dic = psutil.net_if_addrs()
    for adapter in dic:
        snicList = dic[adapter]
        mac = '无 mac 地址'
        ipv4 = '无 ipv4 地址'
        ipv6 = '无 ipv6 地址'
        for snic in snicList:
            if snic.family.name in {'AF_LINK', 'AF_PACKET'}:
                mac = snic.address
            elif snic.family.name == 'AF_INET':
                ipv4 = snic.address
            elif snic.family.name == 'AF_INET6':
                ipv6 = snic.address
        print('%s, %s, %s, %s' % (adapter, mac, ipv4, ipv6))


*** Updated 2018-07-28 ***

  • 跨平台的根据前缀获取 ip 的方法

import psutil

# 多网卡情况下,根据前缀获取IP
# 测试可用:Windows、linuxPython 3.6.x,psutil 5.4.x
# ipv4/ipv6 地址均适用
# 注意如果有多个相同前缀的 ip,只随机返回一个
def GetLocalIPByPrefix(prefix):
	localIP = ''
	dic = psutil.net_if_addrs()
	for adapter in dic:
		snicList = dic[adapter]
		for snic in snicList:
			if not snic.family.name.startswith('AF_INET'):
				continue				
			ip = snic.address
			if ip.startswith(prefix):
				localIP = ip
	 
	return localIP
	 
	 
print(GetLocalIPByPrefix('192.168'))


相关阅读:

1、socket — Low-level networking interface

2、用Python获取自己的外网IP


*** walker ***


--结束END--

本文标题: Python获取本机 IP/MAC(多网

本文链接: https://lsjlt.com/news/187486.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python获取本机 IP/MAC(多网
      Python获取本机IP地址的一般方法为import socket IP = socket.gethostbyname(socket.gethostname())  通过gethostname获取主机名,再用gethostbyname...
    99+
    2023-01-31
    本机 Python IP
  • python获取本机IP、mac地址、计
    在python中获取ip地址和在php中有很大不同,在php中往往比较简单。那再python中怎么做呢?我们先来看一下python 获得本机MAC地址:import... 在python中获取ip地址和在php中有很大不同,在php...
    99+
    2023-01-31
    本机 地址 python
  • python 获取本机IP地址
    方法一: 通常使用socket.gethostbyname()方法即可获取本机IP地址,但有时候获取不到(比如没有正确设置主机名称),示例代码如下: import socket # 获取本机计算机名称 hostname = s...
    99+
    2023-01-31
    本机 地址 python
  • Python获取本机所有网卡的MAC地址
    在拙作《Python可以这样学》(清华大学出版社,2017.2)第297页介绍了一种获取本机网卡MAC地址的方法,不过代码显得稍微有点啰嗦,并且只能获得一块网卡的MAC地址。本文对该内容稍加补充。 1、这样更简洁 >>&...
    99+
    2023-01-31
    本机 网卡 地址
  • Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP
    #/usr/bin/env bash # Name: get_network_info.sh # Author: Purple_Grape # This is a script to gather n...
    99+
    2022-06-04
    脚本 网卡 子网掩码
  • python 优雅获取本机 IP 方法
    见过很多获取服务器本地IP的代码,个人觉得都不是很好。从网上搜索到一个靠谱的脚本,分享一下!通过 UDP 获取本机 IP,目前见过最优雅的方法这个方法是目前见过最优雅获取本机服务器的IP方法了。没有任何的依赖,也没有去猜测机器上的网络设备信...
    99+
    2023-01-30
    本机 优雅 方法
  • Python获取本机所有IP地址
    import socket # 查看当前主机名 print('当前主机名称为 : ' + socket.gethostname()) # 根据主机名称获取当前IP print('当前主机的IP为: ' + socket.get...
    99+
    2023-01-31
    本机 地址 Python
  • Shell脚本中怎么获取本地网卡IP和mac地址
    这篇文章将为大家详细讲解有关Shell脚本中怎么获取本地网卡IP和mac地址,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。#/usr/bin/env bash# Name...
    99+
    2023-06-09
  • python脚本获取服务器ip,主机名
    python3 写法#!/usr/bin/env python#-- coding:utf-8 -- import socketimport fcntl,structimport time def getHardware(outip,ini...
    99+
    2023-01-31
    脚本 主机名 服务器
  • 怎么使用python获取本机ip地址
    在Python中,可以使用socket模块来获取本机IP地址。以下是一个简单的示例代码: import socket def ge...
    99+
    2024-04-02
  • Python中如何使用专用网站获取本机IP地址
    这篇文章给大家分享的是有关Python中如何使用专用网站获取本机IP地址的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用专用网站获取的是公网IP网址:http://myip.i...
    99+
    2024-04-02
  • 用python获取MAC地址和IP地址
    # ifconfig eth0 eth0      Link encap:Ethernet  HWaddr 50:E5:49:3A:EA:90             inet addr:172.28.10.71  Bcast:172.28...
    99+
    2023-01-31
    地址 python MAC
  • Linux中怎么获取本机ip
    本篇文章给大家分享的是有关Linux中怎么获取本机ip,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。调用shell:$ip = `ifconfig ...
    99+
    2023-06-16
  • java获取本机ip的方法
      Java中有一个类叫 Application,可以用来获取本机 ip,也可以用来获取网络连接的信息,例如网络上有什么主机、需要访问本机的主机名等。但是这个类只能在本机上使用,如果要访问外部的主机,还需要使用其它的方法。 首先在主程序中...
    99+
    2023-09-04
    java tcp/ip 网络
  • python获取网卡IP地址
      #!/usr/bin/env python # -*- coding: utf-8 -*-  import socket import fcntl import struct  def get_ip_address(ifname):  ...
    99+
    2023-01-31
    网卡 地址 python
  • Python 获取主机ip与hostna
    ->基础环境 Linux:ubuntu 16.04 Python ; 2.7 ->修改hostname 1:$sudo hostname 2tong-slavetwo 2:$sudo vi /etc/hostname    2...
    99+
    2023-01-31
    主机 Python hostna
  • 如何用Python获取计算机名,ip地址,mac地址
    目录获取计算机名获取ip地址获取mac地址获取计算机名 # 获取计算机名,常用的方法有三种,但最常用的是第一种 import os import socket # metho...
    99+
    2024-04-02
  • 怎么用Python获取计算机名/ip地址/mac地址
    这篇文章主要介绍“怎么用Python获取计算机名/ip地址/mac地址”,在日常操作中,相信很多人在怎么用Python获取计算机名/ip地址/mac地址问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Py...
    99+
    2023-06-08
  • vue如何获取本机ip地址
    Vue.js 是一款流行的前端开发框架,它可以帮助开发者构建动态且高效的用户界面。在许多 Vue.js 项目中,我们需要获取本地 IP 地址来识别设备以及进行网络调试和测试。接下来,我们将介绍如何在 Vue.js 中获取本地 IP 地址。通...
    99+
    2023-05-24
  • Python获取网卡信息(名称、MAC、
        “人生苦短,我用Python”。Python的高效有一部分是跟它丰富的模块分不开的。Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间。Python pypi库中一个模块名字叫“netifaces”,使用C语言写的一...
    99+
    2023-01-31
    网卡 名称 信息
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作