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