导航:首页 > 编程语言 > java开发局域网ip

java开发局域网ip

发布时间:2025-07-24 22:55:20

Ⅰ 局域网在线扫描 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(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){}
}
}
}

Ⅱ JAVA如何获取局域网内所有安卓设备的ip地址,MAC以及序列号

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){}
}
}
}

Ⅲ 如何用java获得局域网内所有ip最好用arp方法,ping的太慢

需要遍历局域网IP的,大体分为两步:
1.得到局域网网段,可由自己机器的IP来确定
2.根据IP类型,一次遍历局域网内IP地址 给一个JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用自己编写相应代码调用便可 代码如下:
package bean;

import java.io.*;
import java.util.*;

Ⅳ java截取ip为什么IP是127.0.0.1

你在本地访问本地服务器??
那是对的。
你预期的结果是什么?是你上万维网的那个IP吗?还是你局域网IP(如果局域网的话)?
是这样的,IP是针对你的上一级资源分配设备的,比如路由器或交换机。你的IP主要做的事情是让上一级在网络层能寻址到你。
如果你是局域网上网,可能你在你们局域网内是192.168.1.33(举个例子),你访问网络,网络看到的是帮助你最终连入万维网的那个设备的IP,你的这个IP是看不到的。
所以,自己访问自己,当然看到127.0.0.1了,也不可能是“localhost”。

阅读全文

与java开发局域网ip相关的资料

热点内容
已在app注册的手机号如何注销 浏览:839
js复制微信浏览器 浏览:148
exe病毒专杀工具下载 浏览:82
剑灵白青版本装备 浏览:433
萍果7怎么设置密码 浏览:483
顶点app好在哪里 浏览:747
苹果7投影功能是真的吗 浏览:542
wps文件转换成ppt格式文件 浏览:990
su版本转换器下载 浏览:711
win10删除文件不干净 浏览:281
exe文件如何加壳 浏览:616
emf文件显示路径 浏览:348
怎么用ps把pdf文件图片改成图片 浏览:180
小舞跳舞网站是多少 浏览:484
魔兽世界90100快速升级 浏览:809
什么叫做数据呀 浏览:360
数据分析思维方式有哪些 浏览:314
什么是消息密码 浏览:929
excel文件无法改动 浏览:579
查看别人qq号注册时间 浏览:414

友情链接