java获取局域网ip地址 具体代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java获取局域网ip地址 具体代码相关的知识,希望对你有一定的参考价值。

参考技术A import java.io.*;
import java.util.*;
import java.net.InetAddress;
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)


参考技术B java.net.NetworkInterface

Enumeration<InetAddress> getInetAddresses()
Convenience method to return an Enumeration with all or a
subset of the InetAddresses bound to this network interface.
List<InterfaceAddress> getInterfaceAddresses()
Get a List of all or a subset of theInterfaceAddressesof this network interface.

以上是关于java获取局域网ip地址 具体代码的主要内容,如果未能解决你的问题,请参考以下文章

如何用JAVA获取本机的局域网IP地址?

java编程,获取局域网内服务器端的ip地址

java中如何获取到本机的外网ip地址?

(50分)MFC如何获取同一局域网中主机的IP地址

Java 获取真实IP地址

用javaScript怎么样获取用户本地的ip地址?