求一个linux c程序,来查看局域网的主机名和mac地址?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个linux c程序,来查看局域网的主机名和mac地址?相关的知识,希望对你有一定的参考价值。
求一个linux c程序,来查看局域网各个IP的主机名和mac地址?
4.2如何察看本机的MAC地址这个.....最简单明了的方法.....
就是拔出网卡,直接在网卡上寻找(网卡制造商通常都会把网卡的MAC地址标识在网卡上面)
如果不方便的,我们可以在不同的OS下面通过一些简单的命令察看到网卡的MAC地址
Windows类
对于win98/winme
开始-->运行-->winipcfg
对于win2k/xp/2003
命令行下 ipconfig /all
显示结果中的Phyical Address即为需要寻找的MAC地址
UNIX类
对于Linux使用ifconfig命令
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:60:08:C4:99:AA
inet addr:131.225.84.67 Bcast:131.225.87.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15647904 errors:0 dropped:0 overruns:0
TX packets:69559 errors:0 dropped:0 overruns:0
Interrupt:10 Base address:0x300
//HWAddr后面那串数值就是MAC地址
对于Solaris同样也是ifconfig -a
# ifconfig -a
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500
inet 131.225.80.209 netmask fffff800 broadcast 131.225.87.255
ether 8:0:20:10:d2:ae
//ether后面那串数值
对于FreeBSD而言使用dmesg命令
对于HPUX机器使用lanscan命令
$ lanscan
Hardware Station Dev Hardware Net-Interface NM Encapsulation Mjr
Path Address lu State NameUnit State ID Methods Num
2.0.2 0x08000935C99D 0 UP lan0 UP 4 ETHER 52
4.3如何察看远程主机的MAC地址
分成两种情况
1.同一网段
先ping一下对端主机
然后通过arp -a可以察看到相应主机的mac地址
例如:
C:\Documents and Settings\Administrator>arp -a
Interface: 10.1.7.88 --- 0x4
Internet Address Physical Address Type
10.1.7.250 00-0a-eb-cb-ca-c0 dynamic
2.不同网段
nbtstat -a ip-address
但是前提是对端为windows主机同时打开了相应的端口
本地连接:
Node IpAddress: [10.1.7.88] Scope Id: []
NetBios Remote Machine Name Table
Name Type Status
---------------------------------------------
INet~Services <1C> GROUP Registered
IS~SOFTLORD....<00> UNIQUE Registered
SOFTLORD <00> UNIQUE Registered
WORKGROUP <00> GROUP Registered
ADMINISTRATOR <03> UNIQUE Registered
WORKGROUP <1E> GROUP Registered
SOFTLORD <20> UNIQUE Registered
IWAM_SOFTLORD <03> UNIQUE Registered
SOFTLORD <03> UNIQUE Registered
WORKGROUP <1D> UNIQUE Registered
..__MSBROWSE__.<01> GROUP Registered
MAC Address = 00-0C-76-C6-55-FC
4.4修改网卡的MAC地址
修改网卡的MAC地址我们可以简单分为"硬改"和"软改"
总所周知,网卡的MAC地址是固化在网卡的某块EEPROM里面的
我们可以通过特殊软件进行修改
比如早期的ISA总线的网卡(很Old的那种,估计好多人都没有见过)
这类网卡所带的驱动软盘上往往有一个诊断程序,通过这个程序我们
可以修改固化在网卡上的MAC地址,这类程序一般只能运行在纯DOS环境
对于广泛采用的Realtek 8029/8139的网卡也有专门的程序可以修改其MAC地址
程序名叫:pg8029.exe
再说说软修改,所谓的软修改就是修改OS相应的协议栈里面的数据达到修改发送
Frame时源MAC地址的目的
对于windows平台,有专门的软件可以修改(大家可以Google一下)
也可以直接修改注册表或者相应的驱动属性.
对于Linux而言据说需要修改相应的源码之后再编译内核即可
对Linux不熟悉,大家如果想了解的化,可以Google一下 参考技术A 我也想要 参考技术B 占个位子,明天再说 参考技术C 自己的ifconfig
别人的arp
apt-get source net-tools下载代码
Linux /etc/hosts
用途:
关联主机名和IP地址
在机器启动时,在DNS正常工作前,需要知道一些主机名和IP地址的映射关系,这个映射关系就保存在/etc/hosts文件中,在DNS不能正常工作是,系统中所有的网络程序将查看该文件以决定IP地址对应的主机名。
格式:
每行一个IP地址
IP_address canonical_hostname [aliases...]
注释:
从 #开始,到一行的结束。
示例一:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
示例二:
# The following lines are desirable for IPv4 capable hosts 127.0.0.1 localhost # 127.0.1.1 is often used for the FQDN of the machine 127.0.1.1 thishost.mydomain.org thishost 192.168.1.10 foo.mydomain.org foo 192.168.1.13 bar.mydomain.org bar 146.82.138.7 master.debian.org master 209.237.226.90 www.opensource.org # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
以上是关于求一个linux c程序,来查看局域网的主机名和mac地址?的主要内容,如果未能解决你的问题,请参考以下文章