Linux CLI环境下简单的网络扫描方法


现在有了无线, 不像从前, 一根线连接一台设备. 也因此有了’蹭网’等新事物. 想查一下自己的局域网里都有些什么东东么? 当然, 有很多现成的有GUI的工具可以用, 不过要想露一手(特别是在女生面前), 还是用CLI吧.

192.168.1.1   : xmt/rcv/%loss = 1/1/0%, min/avg/max = 2.54/2.54/2.54
192.168.1.76  : xmt/rcv/%loss = 1/1/0%, min/avg/max = 0.08/0.08/0.08
192.168.1.100 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 1423/1423/1423
192.168.1.102 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 39.6/39.6/39.6
192.168.1.104 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 2.55/2.55/2.55

上面的结果来自如下的命令组合:

$fping -c1 -g 192.168.1.0/24 2>&1 | grep 'min/avg/max'

fping从名字来看类似ping, 但优势在于可以对不同的IP进行ping操作. -c1 就是计数1次的意思, 对每个目标IP仅ping一次, 这样结果能最快出来. -g 192.168.1.0/24 给出了fping的作用范围, 也就是192.168.1.1 ~ 192.168.1.254.

不常见的2>&1是一个重定向操作. Linux有3个消息通道STDIN, STDOUT, STDERR, 也就是标准输入/输出/错误信息通道. 它们的标号是0, 1, 2. 我不大明白的是fping的输出有一部分是给STDERR的, 这样子就无法给到grep做过滤了. 因此使用 2>&1的作用就是把输出给STDERR的那部分信息重新转给STDOUT.

grep这一部分就简单了, 因为输出结果中只有在线的IP才有min/avg/max信息. 这样通过grep就直接把在线的信息过滤出来了.

如果对其中某个IP感兴趣, 还可以用nmap扫描一下活动端口的信息.

$nmap -PN 192.168.1.11

Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-21 15:43 CST
Nmap scan report for 192.168.1.11
Host is up (0.016s latency).
Not shown: 996 filtered ports
PORT     STATE SERVICE
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
2869/tcp open  unknown
3389/tcp open  ms-term-serv

看到3389是不是很熟悉, 哈哈, 大概是在用e-mule吧.  😛

以上参考: <Linux Networking Cookbook>

 

 

, ,

2 responses to “Linux CLI环境下简单的网络扫描方法”