ICMP协议 广播以查询局域网内的所有主机

  看到了很多局域网内的主机扫描工具,在想怎么去实现这样一个工具。前几天看了Ping源码--ICMP协议的实例,ICMP可以用来探测网联网内的任一主机,ICMP和广播地址结合来扫描局域网内的所有主机不是很容易吗。

http://wenku.baidu.com/link?url=XIimPSkG3KXjcM1Rh8ZfjjBLnJmWh5IAULrtKQv99oLukRsRhdGN-Gl_PQzs5dXDcSngRVjnzswMjXAsB75c2evG35ENvKbf4tBtgxntDke

ErrCode = setsocketopt(sockRaw,IPPROTO_IP,IP_HDRINCL,(char *)flag,sizeof(int));

但是我使用前面的ping源码测试ICMP广播,看到的结果是只有5个主机给我了回复,而实际局域网内的主机数据很多。莫非真像前面这篇文章介绍的,windows平台对于广播地址的ICMP命令不回复。而我需要重试254次ping?

时间: 2024-10-21 16:21:59

ICMP协议 广播以查询局域网内的所有主机的相关文章

查询局域网内在线电脑IP

COLOR 0A CLS @ECHO Off Title 查询局域网内在线电脑IP :send @ECHO off&setlocal enabledelayedexpansion ECHO 正在获取本机的IP地址,请稍等... for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do ( set "IP=%%i" set IP=!IP:~1,-1! ECHO 本机IP为:!IP! goto :ne

查询局域网内的IP

COLOR 0ACLS@ECHO OffTitle 查询局域网内在线电脑IP:send@ECHO off&setlocal enabledelayedexpansion ECHO 正在获取本机的IP地址,请稍等... for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do ( set "IP=%%i" set IP=!IP:~1,-1! ECHO 本机IP为:!IP! goto :next )

求局域网内所有在线主机的ip

在一个局域网内,已知其中一台主机的ip为192.168.1.1,子网掩码为255.255.255.0,求所有其他在线主机的ip. shell 编码实现 #!/bin/bash netWorkIP=192.168.1. for host in $(seq 2 254) do ping -c 1 $netWorkIP$host &> /dev/null && echo $netWorkIP$host done 另外可以借助nmap命令实现, nmap -sP 192.168.1.

探测局域网内有多少在线主机

[[email protected] ~]# vim wlan.sh #!/bin/bash # ping check scripts for IP in 192.168.9.{1..254} do ping -c 2 -i 0.1 -W 1 $IP &> /dev/null if [ $? -eq 0 ]  then echo "Host $IP is up." else     echo "Host $IP is down." fi done 探测

查看局域网内在线的主机ip和mac地址

]# nmap -sP 192.168.1.0/24 Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-12 22:43 CST Nmap scan report for 192.168.1.1 Host is up (0.0029s latency). MAC Address: EC:88:8F:30:81:6C (Unknown) Nmap scan report for 192.168.1.105 Host is up. Nmap scan

局域网内和局域网间的通信

1.交换机和路由器区别交换机主要是用于组建局域网,而路由器则是负责让主机连接外网. 2.局域网间通信例子1: 1. PC1与PC2通信时,在PC1电脑中,应用层产生数据交给传输层:传输层进行数据的分段,使数据的大小适合在网络上传递,根据应用层不同软件产生的数据,选择不同协议栈进行封装TCP或UDP,再进行不同服务端口号的封装(例:WWW 80 ,FTP 21),再传递给网络层:网络层在数据包头部进行封装源IP.目的IP,根据上层协议栈标识不同协议号,当IP包头封装TCP时协议号为6.UDP协议号

Windows下查看局域网内端口占用情况脚本

将下列代码复制到记事本中 ,然后更改后缀为 bat 即可点击运行 查看所有端口占用情况 COLOR 0A CLS @ECHO Off Title 查询局域网内在线电脑IP :send @ECHO off&setlocal enabledelayedexpansion ECHO 正在获取本机的IP地址,请稍等... for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do ( set "IP=%%i"

中间人攻击-Arp之局域网内DNS欺骗

基础知识 网关是啥? 网关是工作在OSI七层模型中的传输层或者应用层,用于高层协议的不同网络之间的连接,网关就好比一个房间通向另一个房间的一扇门. ARP协议 假设A(192.168.1.2)与B(192.168.1.3)在同一局域网,A要和B实现通信.A首先会发送一个数据包到广播地址(192.168.1.255),该数据包中包含了源IP(A).源MAC.目的IP(B).目的MAC,这个数据包会被发放给局域网中所有的主机,但是只有B主机会回复一个包含了源IP(B).源MAC.目的IP(A).目的

ICMP协议详解

ICMP协议详解 一. 什么是ICMP协议     ICMP全称Internet Control Message Protocol(网际控制信息协议) 提起ICMP,一些人可能会感到陌生,实际上,ICMP与我们息息相关.在网络体系结构的各层次中,都需要控制,而不同的层次有不同的分工和控制内容,IP层的控制功能是最复杂的,主要负责差错控制.拥塞控制等,任何控制都是建立在信息的基础之上的,在基于IP数据报的网络体系中,网关必须自己处理数据报的传输工作,而IP协议自身没有内在机制来获取差错信息并处理.