Linux下获取IP和Mac地址

mac2024-05-12  43

1,在终端下执行下列命令,可以获得IP地址:

[root@QQQQ ~]# ifconfig eth0 eth0   Link encap:Ethernet HWaddr 00:0C:29:9E:70:0E       inet addr:192.168.42.128 Bcast:192.168.42.255 Mask:255.255.255.0      inet6 addr: fe80::20c:29ff:fe9e:700e/64 Scope:Link      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1      RX packets:135 errors:0 dropped:0 overruns:0 frame:0      TX packets:216 errors:0 dropped:0 overruns:0 carrier:0      collisions:0 txqueuelen:1000       RX bytes:14062 (13.7 KiB) TX bytes:26007 (25.3 KiB) [root@QQQQ ~]# ifconfig eth0 | grep "inet addr"      inet addr:192.168.42.128 Bcast:192.168.42.255 Mask:255.255.255.0

[root@QQQQ ~]# ifconfig eth0 | grep "inet addr" | awk '{ print $2}' addr:192.168.42.128 [root@QQQQ ~]# ifconfig eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}' 192.168.42.128

2,在终端下执行下列命令,获取mac地址:

mit@QQQQ:~$ ifconfig ens33 | grep "Link encap" ens33     Link encap:Ethernet  HWaddr 00:0c:29:14:97:6c   mit@QQQQ:~$ ifconfig ens33 | grep "Link encap" | awk '{ print $1}' ens33 mit@QQQQ:~$ ifconfig ens33 | grep "Link encap" | awk '{ print $2}' Link mit@QQQQ:~$ ifconfig ens33 | grep "Link encap" | awk '{ print $3}' encap:Ethernet mit@QQQQ:~$ ifconfig ens33 | grep "Link encap" | awk '{ print $4}' HWaddr mit@QQQQ:~$ ifconfig ens33 | grep "Link encap" | awk '{ print $5}' 00:0c:29:14:97:6c mit@QQQQ:~$ 

3,在代码中获取机器的IP和Mac:

由于system()函数,返回值只有成功失败标识,无法获得命令里得到的有效信息,所以需要重定向 > 到一个文件或参数中。

4,在获取设备IP和Mac,根据linux一切设备皆文件的特性,直接访问存储IP和Mac的文件,并从文件中解析获得IP地址和Mac地址(一般需要root权限,如非必要,请且谨慎操作)。  

注:转载请注明出处。QQQQ

 

 

最新回复(0)