找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27227|回复: 11

[技术讨论] Shell脚本怎样检查局域网中哪些端口被占用?

[复制链接]
发表于 2012-3-17 22:25:18 | 显示全部楼层 |阅读模式
  1. #!/bin/bash
  2. #检查局域网中哪些端口被占用

  3. for n in {2..255}; do
  4. #此处的“{}”中的数值为需要测试的IP尾号段,起止IP尾号用“..”隔开,并分配变量给“n”   ------->这么写对吗?
  5.          host=192.168.0.$n
  6.          ping -c2 $host &>/dev/null
  7.          if [ $? = 0 ]; then
  8.                       echo "$host 已被占用"
  9.          else
  10.                       echo "$host"
  11.          fi
  12. done
复制代码
发表于 2012-3-17 22:54:12 | 显示全部楼层
 楼主| 发表于 2012-3-17 23:08:39 | 显示全部楼层
回复 2# find


    这个不对吧,我在终端里运行的时候,显示:ping: unknown host 192.168.0.{2..255}
发表于 2012-3-17 23:12:47 | 显示全部楼层
回复 3# hacker85


你是怎样执行这个脚本的?
./testsh
. ./test.sh
sh test.sh
 楼主| 发表于 2012-3-17 23:13:48 | 显示全部楼层
回复 4# find


    sh ./IP
 楼主| 发表于 2012-3-17 23:20:08 | 显示全部楼层
明天来看你的回复,谢谢先。
发表于 2012-3-18 09:10:33 | 显示全部楼层
回复 6# hacker85


那种方法是不靠谱的,试试:
  1. chmod u+x test.sh
  2. ./test.sh
复制代码
 楼主| 发表于 2012-3-18 10:27:01 | 显示全部楼层
回复 7# find


    呵,还是不行,结果如下:
6@6:~/下载$ chmod u+x IP
6@6:~/下载$ sh ./IP
192.168.1.{2..255} 已被占用
6@6:~/下载$ ping: unknown host 192.168.1.{2..255}
发表于 2012-3-18 10:47:19 | 显示全部楼层
回复 8# hacker85


运行的时候不要使用:
sh ./IP
而是使用:
./IP
 楼主| 发表于 2012-3-18 10:52:30 | 显示全部楼层
本帖最后由 hacker85 于 2012-3-18 11:11 编辑

回复 9# find


    为什么呢?!不是一个道理吗?
====================分割线==========
不加sh确实可以运行。
====================分割线==========
不过这个代码的效率不是太高。
当一台想用ssh连接一台设备的时候,这个设备虽然开机,但是它
本身却没有进行网络通讯,则ssh就不会连接成功,这样的设备如
ipad,当它待机的时候,虽然ip还是分配给了它,可是这个时候
用别的设备去连接的时候,会发现无法连接,我想这是IOS系统的
一个安全措施吧。但是它给我们这个代码带来了一个消息,就是虽
然ip被分配出去了,也就是说自己知道它被占用了,可以程序结果
不会显示已占用。
发表于 2012-3-18 12:37:30 | 显示全部楼层
回复 10# hacker85


./test.sh会调用你脚本里面指定的/bin/bash去解释执行这个脚本
sh test.sh调用的是sh
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:09 , Processed in 0.019481 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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