ip连续扫描代码(IP扫描的原理是什么)
admin 发布:2022-12-19 21:22 118
本篇文章给大家谈谈ip连续扫描代码,以及IP扫描的原理是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、c# 局域网IP扫描程序
- 2、局域网在线扫描 IP,MAC Java源代码
- 3、批处理扫描IP段 指定端口 给个代码谢谢 需要导出结果的
- 4、跪求vb扫描局域网电脑的IP和MAC地址的完整代码(悬赏)
- 5、局域网里一个IP不停的循环扫描,是什么原因?
- 6、求一个 扫描一个指定ip并指定端口范围的c#程序
c# 局域网IP扫描程序
用多线程,循环ping某个网关下的IP(0-255)。ping通了就记录下来,C#中有支持ping IP地址的类。给你提供一点代码吧:
string gate = "192.168.10.";//网关
for (int index = 1; index = 255; index++)
{
IPAddress address = IPAddress.Parse(gate + index.ToString());
Thread thread = new Thread(new ThreadStart(
delegate()//匿名方法
{
Ping ping = new Ping();
PingReply result = ping.Send(address);
if (result.Status == IPStatus.Success)
{
lock (this.lstComputer)//防止2个线程去ping同一个IP,节约时间
{
this.lstComputer.Items.Add(Dns.GetHostEntry(address).HostName + " : " + address.ToString());//ping通的结果保存到ListBox中,即在线的人
}
}
}
));
thread.IsBackground = true;//设为后台线程
thread.Start();//启动线程
}
局域网在线扫描 IP,MAC Java源代码
1.得到局域网网段,可由自己机器的IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)
2.根据IP类型,一次遍历局域网内IP地址
JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可
代码如下::
package bean;
import java.io.*;
import java.util.*;
public class Ip{
static public HashMap ping; //ping 后的结果集
public HashMap getPing(){ //用来得到ping后的结果集
return ping;
}
//当前线程的数量, 防止过多线程摧毁电脑
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30个线程
while(threadCount30)
Thread.sleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
p.start();
}
public void PingAll() throws Exception{
//首先得到本机的IP,得到网段
InetAddress host = InetAddress.getLocalHost();
String hostAddress = host.getHostAddress();
int k=0;
k=hostAddress.lastIndexOf(“.”);
String ss = hostAddress.substring(0,k+1);
for(int i=1;i =255;i++){ //对所有局域网Ip
String iip=ss+i;
Ping(iip);
}
//等着所有Ping结束
while(threadCount0)
Thread.sleep(50);
}
public static void main(String[] args) throws Exception{
Ip ip= new Ip();
ip.PingAll();
java.util.Set entries = ping.entrySet();
Iterator iter=entries.iterator();
String k;
while(iter.hasNext()){
Map.Entry entry=(Map.Entry)iter.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
if(value.equals(“true”))
System.out.println(key+“--”+value);
}
}
class PingIp extends Thread{
public String ip; // IP
public PingIp(String ip){
this.ip=ip;
}
public void run(){
try{
Process p= Runtime.getRuntime()。exec (“ping ”+ip+ “ -w 300 -n 1”);
InputStreamReader ir = new InputStreamReader(p.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
//读取结果行
for (int i=1 ; i 7; i++)
input.readLine();
String line= input.readLine();
if (line.length() 17 || line.substring(8,17)。equals(“timed out”))
ping.put(ip,“false”);
else
ping.put(ip,“true”);
//线程结束
threadCount -= 1;
}catch (IOException e){}
}
}
}
批处理扫描IP段 指定端口 给个代码谢谢 需要导出结果的
@echo off
setlocal
cls
color e
title SYN(正在扫描,请稍候.......)
for /f "eol= tokens=1,2 delims= " %%i in (ip.txt) do s syn %%i %%j 端口号 /save
for /f "eol=- tokens=1 delims= " %%i in (result.txt) do echo %%is1.txt
for /f "eol=P tokens=1 delims= " %%i in (s1.txt) do echo %%is2.txt
for /f "eol=S tokens=1 delims= " %%i in (s2.txt) do echo %%iips.txt
del s1.txt
del s2.txt
exit
前提: 这是一段批处理 在批处理同一目录下得有个s扫描器
然后机器得破解了tcpip的并发数补丁
另外翻盘好不容易找到了这段批处理~~~~
跪求vb扫描局域网电脑的IP和MAC地址的完整代码(悬赏)
#include
#include
#include
#include "iphlpapi.h"
#pragma comment ( lib, "ws2_32.lib" )
#pragma comment ( lib, "Iphlpapi.lib" )
void main( int argc, char ** argv )
{
int numberOfHost = 1;
struct hostent *remoteHostent;
//处理命令行参数
if ( argc == 3 )
numberOfHost = atoi( argv[2] );
if ( ( argc 3 ) || ( argc 2 ) )
{
printf( "RmtHost v0.2 - Get remote HostName /MacAddress\n" );
printf( "by ShotgunLabs ( Shotgun@xici.net )\n\n" );
printf( "Usage :\n\tRmtHost.exe [RemoteIP] \n\n" );
printf( "Example:\n\tRmtHost.exe 192.168.0.3\n" );
printf( "\tRmtHost.exe 192.168.0.3 255\n\n" );
exit( 0 );
}
//初始化SOCKET
WSADATA wsaData;
int iRet = WSAStartup(MAKEWORD(2,1), wsaData);
if ( iRet != 0 )
{
printf( "WSAStartup Error:%d\n", GetLastError() );
exit( 0 );
}
int nRemoteAddr = inet_addr( argv[1] );
remoteHostent= (struct hostent*)malloc( sizeof(struct hostent ));
struct in_addr sa;
for ( int i = 0; i numberOfHost; i ++ )
{
//获取远程机器名
sa.s_addr = nRemoteAddr;
printf( "\nIpAddress : %s\n", inet_ntoa( sa ) );
remoteHostent = gethostbyaddr( (char*)nRemoteAddr,4, AF_INET );
if ( remoteHostent )
printf( "HostName : %s\n",remoteHostent-h_name );
else
printf( "gethostbyaddr Error:%d\n",GetLastError() );
//发送ARP查询包获得远程MAC地址
unsigned char macAddress[6];
ULONG macAddLen = 6;
iRet=SendARP(nRemoteAddr, (unsigned long)NULL,(PULONG)macAddress, macAddLen);
if ( iRet == NO_ERROR )
{
printf( "MacAddress: " );
for( int i =0; i6; i++ )
{
printf( "%.2x", macAddress[i] );
if ( i5 ) printf( "-" );
}
printf( "\n" );
}
else
printf( "SendARP Error:%d\n", GetLastError());
nRemoteAddr = htonl( ntohl( nRemoteAddr ) + 1 );
}
局域网里一个IP不停的循环扫描,是什么原因?
你看看是否有人中了ARP欺骗病毒
这个是检测软件的下载
附:Anti Arp Sniffer 的使用方法
双击Anti Arp图标,出现图二所示对话框。
图二
输入网关地址,(点击“开始”à “运行”,在窗口中输入“cmd”,点“确定”,调出“命令提示符”。输入并执行以下命令:ipconfig à网关 IP 地址,即“ Default Gateway ”对应的值。)
点击获取网关MAC地址,点击“自动防护”保证当前网卡与网关的通信不被第三方监听。
参考链接:
求一个 扫描一个指定ip并指定端口范围的c#程序
class PingExam
{
public static void Main()
{
Ping ping = new Ping();
string ip = "192.168.1.43"; // 目标ip
int[] ports = { 20, 21, 25, 80, 8080, 2588 }; // 需要扫描的端口
scanPort(IPAddress.Parse(ip), ports);
}
private static void scanPort(IPAddress address, int[] ports)
{
try {
int count = ports.Length;
AutoResetEvent[] arEvents = new AutoResetEvent[count]; // 同步对象
for (int i = 0; i count; i++) {
arEvents[i] = new AutoResetEvent(false); // 同步对象, 初始未触发
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(IPAddress.Any, 0));
socket.BeginConnect(new IPEndPoint(address, ports[i]),
callback,
new ArrayList() { socket, ports[i], arEvents[i]} // 传递3个参数: 当前socket, 端口, 同步对象
);
}
WaitHandle.WaitAll(arEvents); // 等待所有扫描工作完成
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
private static void callback(IAsyncResult ar) // 扫描完成后的回调方法
{
ArrayList list = (ArrayList)ar.AsyncState; // 获取传递的参数
Socket socket = (Socket)list[0];
int port = (int)list[1];
AutoResetEvent arevent = (AutoResetEvent)list[2];
if (ar.IsCompleted socket.Connected) {
Console.WriteLine("port: {0} open.", port); // 检查 connected属性, 如果为true 则表示是开放的
}
else {
Console.WriteLine("port: {0} closed.", port);
}
try {
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
catch {
}
arevent.Set(); // 完成后触发
}
}
关于ip连续扫描代码和IP扫描的原理是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-19seo教程网,seo教程是什么
- 05-19竞价推广代运营,竞价推广代运营是什么意思
- 05-19seo推广是什么意思呢,seo推广是什么工作
- 05-19seo网站,seo网站是什么意思
- 05-19seo优化是什么,SEO优化是什么意思
- 05-18seo网站优化,seo网站优化是做什么的
- 05-18seo是什么职业,seo是做什么的?
- 05-18seo优化是什么意思,seo是什么意思
- 05-18sem优化,sem优化师是做什么的
- 05-18网站建设是干嘛的,网站建设是什么工作
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接