当前位置:首页 » 编程语言 » python获取ipmac

python获取ipmac

发布时间: 2024-08-16 09:01:19

① 利用python写一段读取电脑配置信息的程序

主要利用python的wmi模块,提供非常多的信息。

importwmi
defsys_version():
c=wmi.WMI()

#操作系统版本,版本号,32位/64位
print(' OS:')
sys=c.Win32_OperatingSystem()[0]
print(sys.Caption,sys.BuildNumber,sys.OSArchitecture)

#CPU类型CPU内存
print(' CPU:')
processor=c.Win32_Processor()[0]
print(processor.Name.strip())
Memory=c.Win32_PhysicalMemory()[0]
print(int(Memory.Capacity)//1048576,'M')

#硬盘名称,硬盘剩余空间,硬盘总大小
print(' DISK:')
fordiskinc.Win32_LogicalDisk(DriveType=3):
print(disk.Caption,'free:',int(disk.FreeSpace)//1048576,'M ','All:',int(disk.Size)//1048576,'M')

#获取MAC和IP地址
print(' IP:')
forinterfaceinc.Win32_NetworkAdapterConfiguration(IPEnabled=1):
print("MAC:%s"%interface.MACAddress)
forip_addressininterface.IPAddress:
print(" IP:%s"%ip_address)

#BIOS版本生产厂家释放日期
print(' BIOS:')
bios=c.Win32_BIOS()[0]
print(bios.Version)
print(bios.Manufacturer)
print(bios.ReleaseDate)


sys_version()

显示:

OS:
MicrosoftWindows10专业版1713464位

CPU:
Intel(R)Core(TM)[email protected]
8192M

DISK:
C:free:34165M All:120825M
D:free:265648M All:390777M
E:free:35669M All:204796M
F:free:5814M All:28163M
G:free:328650M All:329999M

IP:
MAC:00:50:56:C0:00:01
IP:192.168.182.1
IP:fe80::e0fb:efd8:ecb0:77f4
MAC:00:50:56:C0:00:08
IP:192.168.213.1
IP:fe80::8da1:ce76:dae:bd48
MAC:54:E1:AD:77:57:AB
IP:192.168.199.105
IP:fe80::aca8:4e6f:46e7:ef4a

BIOS:
LENOVO-1
LENOVO
20170518000000.000000+000

② 如何自动获取ip地址

在大多数情况下,无法直接从本机自动获取IP地址,因为IP地址是由计算机网络中的路由器或DHCP服务器分配的。然而,你可以使用编程语言或命令行工具来获取你的IP地址。

1. 使用命令行工具获取IP地址:
- 在Windows上,打开命令提示符(按下Win + R键,然后键入cmd并按回车键),输入"ipconfig"命令,查找"IPv4地址"(通常是以"192.168."开头的地址)。
- 在Mac上,打开终端(通过应用程序->实用工具->终端),然后输入"ifconfig"命令,查找"inet"关键字旁边的IP地址。
- 在linux上,打开终端,然后输入"ifconfig"命令或者"ip addr"命令,查找"inet"关键字旁边的IP地址。

2. 使用编程语言获取IP地址:
- Python: 使用socket库中的gethostname()和gethostbyname()函数来获取主机名和IP地址。示例代码如下:
```python
import socket

hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)

print("Hostname:", hostname)
print("IP Address:", ip_address)
```

- java: 使用java.net包中的InetAddress类来获取本机IP地址。示例代码如下:
```java
import java.net.InetAddress;
import java.net.UnknownHostException;

public class GetIPAddress {
public static void main(String[] args) {
try {
InetAddress ip = InetAddress.getLocalHost();
System.out.println("IP Address: " + ip.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
```

- C#: 使用System.Net命名空间中的Dns类来获取IP地址。示例代码如下:
```csharp
using System;
using System.Net;

class GetIPAddress {
static void Main(string[] args) {
string hostName = Dns.GetHostName();
string ipAddress = Dns.GetHostEntry(hostName).AddressList[0].ToString();

Console.WriteLine("Hostname: " + hostName);
Console.WriteLine("IP Address: " + ipAddress);
}
}
```

无论使用哪种方法,你都可以获得本机的IP地址。注意,如果你的计算机连接到局域网或使用了代理服务器,获取的IP地址可能是局域网地址或代理服务器的地址,而不是公共IP地址。

③ 我想用python扫描局域网内的ip和mac地址,需要什么第三方库

MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。只要你不去更改自己的MAC地址,那么你的MAC地址在世界是惟一的。

MAC地址的作用

IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位可以既可以让甲坐,也可以让乙坐,同样的道理一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。本身有的计算机流动性就比较强,正如同人才可以给不同的单位干活的道理一样的,人才的流动性是比较强的。职位和人才的对应关系就有点像是IP地址与MAC地址的对应关系。比如,如果一个网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。当然MAC地址除了仅仅只有这个功能还是不够的,就拿人类社会与网络进行类比,通过类比,我们就可以发现其中的类浦?Γ??玫乩斫𨰿AC地址的作用。

无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。其实人类社会和网络也是类似的,试想在人际关系网络中,甲要捎个口信给丁,就会通过乙和丙中转一下,最后由丙 转告给丁。在网络中,这个口信就好比是一个网络中的一个数据包。数据包在传送过程中会不断询问相邻节点的MAC地址,这个过程就好比是人类社会的口信传送过程。相信通过这两个例子,我们就可以进一步理解MAC地址的作用。

与MAC地址相关的命令与软件

在人类社会社交中,我们认识一个人往往只会知道他的姓名,而身份证号码在一般的人际交往中会被忽略。同样在网络中,我们往往只会知道同事或者网友的IP地址,并不会去过多地关心对方的MAC地址。要成长为网络高手,我们可以使用一些方法去了解对方的MAC地址。在这里介绍两种常用的方法,在Windows 9x 中可用WinIPcfg获得,在Windows 2000/XP中可用IPconfig -all获得。

使用命令只能单条获得MAC地址,而且使用起来也是很麻烦的。对于网管人员,更希望有一款简单化操作的软件,我们可以利用“MAC扫描器”远程批量获取MAC地址。它是用于批量获取远程计算机网卡物理地址的一款网络管理软件。该软件运行于网络(局域网、Internet都可以)内的一台机器上,即可监控整个网络的连接情况,实时检测各用户的IP、MAC、主机名、用户名等并记录以供查询,可以由用户自己加以备注;能进行跨网段扫描,能和数据库中得IP和MAC地址进行比较,有修改IP的或使用虚假MAC地址的,都能报警。

更改MAC地址

④ Python网络编程5-实现DHCP Client

  DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息。

option字段
  DHCP报文中的Options字段可以用来存放普通协议中没有定义的控制信息和参数。如果用户在DHCP服务器端配置了Options字段,DHCP客户端在申请IP地址的时候,会通过服务器端回应的DHCP报文获得Options字段中的配置信息。

获取IP地址过程

  实验使用的linux 主机由两个网络接口,其中ens33使用DHCP获取IP地址,ens37使用静态IP地址;因此需要使用ens33来发送数据包。

  Change_MAC.py用于MAC地址与Bytes类型相互转换。

  DHCP_Discover.py用于发送DHCP Discover报文;其中GET_MAC.py见ARP章节。

  DHCP_Request.py用于发送DHCP Request报文。

  DHCP_FULL.py用于完成DHCP Client与DHCP Server的报文交互

Wireshark对远程linux主机抓包,结果如下
客户端以广播发送DHCP Discover包,其中报文操作类型为1(请求报文),DHCP客户端的MAC地址设置为00:0c:29:03:a1:08,option53设置报文类型为Discover,option55(请求选项列表)中包含请求的参数。

服务器以单播向客户端回复信息,其中报文操作类型为2(应答报文),分配给客户端的IP为192.168.160.146,option 53设置报文类型为offer,Option 54设置服务器标识为192.168.160.254,其他option为客户端请求列表的应答。

值得注意的是,交互的四个报文中Transaction ID均为0x00000000,表明是同一次DHCP交互报文。

⑤ MacOS 怎么用Python3获取当前用户的IP地址

首先,你获取的是什么内网IP和公网IP没有说清楚,如果是内网IP可以利用执行命令获取的返回值来得到mac肯定有对应的命令,利用os.popen函数来执行命令,如果是公网IP随便找一个接口然后请求一下就有返回值了,这玩意网络还找不到?

⑥ 为什么我用python做 获取 mac地址,获取的是我电脑上蓝牙的IP地址

上述代码和网络设备没有任何关系

热点内容
php了解 发布:2024-11-25 16:16:26 浏览:933
个人搭建服务器要钱不 发布:2024-11-25 16:06:56 浏览:832
服务器磁盘满了怎么办 发布:2024-11-25 16:06:14 浏览:19
python代码文本分类 发布:2024-11-25 16:05:22 浏览:224
加密cf备份 发布:2024-11-25 16:05:21 浏览:442
java加锁 发布:2024-11-25 15:50:26 浏览:397
电信营业厅安卓文件夹是哪个 发布:2024-11-25 15:40:14 浏览:498
后期配置本田遥控钥匙怎么换电池 发布:2024-11-25 15:39:37 浏览:235
vbs关机脚本 发布:2024-11-25 15:39:32 浏览:442
java收入 发布:2024-11-25 15:36:34 浏览:885