QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6765|回复: 16

取MAC地址的方法(已解决)-有新问题,参数传递

[复制链接]
发表于 2006-3-9 21:19:23 | 显示全部楼层 |阅读模式
取指定IP的MAC地址,有几种方法?

如:arp -a 192.168.0.1
      
      nmblookup -A 192.168.0.1

谢谢大家。
发表于 2006-3-10 12:37:47 | 显示全部楼层
ifconfig也可以吧
回复

使用道具 举报

 楼主| 发表于 2006-3-10 13:28:41 | 显示全部楼层
是的,可以,但我是要取非本机的MAC。
回复

使用道具 举报

发表于 2006-3-13 18:26:51 | 显示全部楼层
建议做成一个脚本,弄出整个局域网的MAC。
回复

使用道具 举报

发表于 2006-3-21 08:38:29 | 显示全部楼层
$vi  scanaddr.sh
[code:1]
#!/bin/bash

if [ $# -eq 1 ]  ; then
        nmap  -n -sP $1  |
        perl -ne 'printf("\n%s",$1) if /Host ([\d\.]+)/ ;
                printf ("\t%s\t%s",$1,$2) if /MAC Address: ([\dA-F\:]+) (\(.*\))/   '
        echo -e "\n"
else
        echo $0 :Network
fi

[/code:1]
OS:debian (testing)
nmap 4.0

./scanaddr.sh 192.168.18.0/24
輸出類似
192.168.18.2     00:0C:6E:B6:0D:0F       (Asustek Computer)
192.168.18.3   00:30:6E:00:E7:44       (Hewlett Packard)
192.168.18.6   00:30:6E:00:F3:DE       (Hewlett Packard)
192.168.18.14   00:30:6E:00:DC:60       (Hewlett Packard)
....
回复

使用道具 举报

发表于 2006-3-21 22:49:19 | 显示全部楼层
arping -c 1 IP | grep index | awk '{print $4}'
回复

使用道具 举报

发表于 2006-3-24 11:40:31 | 显示全部楼层
已收藏。。。
回复

使用道具 举报

 楼主| 发表于 2006-3-27 08:53:09 | 显示全部楼层
gangjh 兄弟的方法是最快的,再次感谢。

#!/bin/bash
   
IP12=192.168.

IP3=0
while (( $IP3 < 1 ))
do
  IP4=1
  while (( $IP4 < 255 ))
  do
      IP="$IP12$IP3.$IP4"
      MAC="00:00:00:00:00:00:00"
      IP4=`expr $IP4 + 1`
  done
  IP3=`expr $IP3 + 1`
done

fi

这段脚本如何才能更智能化一点,比如我输入
#name 192.168.0.0/24
他自动输出所有$1 参数网段的IP与MAC(空的也可)对应表
回复

使用道具 举报

发表于 2006-3-27 20:53:25 | 显示全部楼层
请问大虾,怎么修改自己的物理地址(MAC)?
回复

使用道具 举报

发表于 2006-3-27 21:56:54 | 显示全部楼层
[code:1]#!/bin/sh
net="192.168.0"
for i in $(seq 2 254); do
    x=`arping -c 1 $net.$i | grep index | awk '{print $4}'`
    if [ -z $x ]
    then
        x="00:00:00:00:00:00"
    fi
    echo -e "$net.$i\t$x" >> /etc/ethers
done[/code:1]
做 ip 地址和 MAC 地址绑定用到的脚本。
回复

使用道具 举报

发表于 2006-3-27 21:58:47 | 显示全部楼层
[quote:6b1cf9e246="jaytessie"]请问大虾,怎么修改自己的物理地址(MAC)?[/quote]
编辑 /etc/rc.sysinit,加到最后:
ifconfig eth0 down
ifconfig eth0 hw ether xxxxxxx
ifconfig eth0 up

Redhat:
修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,加上
HWADDR xxxxxxx
回复

使用道具 举报

 楼主| 发表于 2006-3-28 08:30:06 | 显示全部楼层
[quote:7ace5fcd08="Bluedata"][code:1]#!/bin/sh
net="192.168.0"
for i in $(seq 2 254); do
    x=`arping -c 1 $net.$i | grep index | awk '{print $4}'`
    if [ -z $x ]
    then
        x="00:00:00:00:00:00"
    fi
    echo -e "$net.$i\t$x" >> /etc/ethers
done[/code:1]
做 ip 地址和 MAC 地址绑定用到的脚本。[/quote]

这个方法确实不错,但如果换个网段还需要改脚本,我所要的传递网段做参数,就是不想修改脚本。不知大侠是否另有良策?
回复

使用道具 举报

发表于 2006-3-28 08:55:57 | 显示全部楼层
net=$1 不就行了吗?
回复

使用道具 举报

发表于 2006-3-31 02:45:31 | 显示全部楼层
[quote:410eee1c5a="Bluedata"][code:1]#!/bin/sh
net="192.168.0"
for i in $(seq 2 254); do
    x=`arping -c 1 $net.$i | grep index | awk '{print $4}'`
    if [ -z $x ]
    then
        x="00:00:00:00:00:00"
    fi
    echo -e "$net.$i\t$x" >> /etc/ethers
done[/code:1]
做 ip 地址和 MAC 地址绑定用到的脚本。[/quote]

把这段代码加到哪里?如果只对单个IP做MAC绑定,比如网关192.168.1.1
XX:XX:XX:XX:XX:XX,需要修改代码吗?
回复

使用道具 举报

发表于 2006-3-31 12:34:39 | 显示全部楼层
一般在网关上做。
生成了 /etc/ethers 这个文件。
arp -f 做 arp 静态绑定。
ip/mac 不匹配的就不能通过网关。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 08:21 , Processed in 0.108953 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表