今天给各位分享java开发局域网ip的知识,其中也会对实现局域网进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、如何用java获得局域网内所有ip?最好用arp方法,ping的太慢2、java获取局域网ip地址 具体代码3、java怎么获取当前电脑的内网ip4、java 怎样利用IP地址获得局域网计算机的名字、mac地址、工作组?5、java 怎么查看局域网的ip有哪些6、java编程,获取局域网内服务器端的ip地址
如何用java获得局域网内所有ip?最好用arp方法,ping的太慢
需要遍历局域网IP的,大体分为两步:
1.得到局域网网段,可由自己机器的IP来确定
2.根据IP类型,一次遍历局域网内IP地址 给一个JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用自己编写相应代码调用便可 代码如下:
package bean;
import java.io.*;
import java.util.*;
java获取局域网ip地址 具体代码
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(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){}
}
}
}
java怎么获取当前电脑的内网ip
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);
}
java 怎样利用IP地址获得局域网计算机的名字、mac地址、工作组?
指定IP的MAC
代码如下:
Java
code
System.out.println(“192.168.1.187对应网卡的MAC是:”);NetworkInterface
ne=NetworkInterface.getByInetAddress(InetAddress.getByName(“192.168.1.187”));byte[]mac=ne.getHardwareAddress();String
mac_s=hexByte(mac[0])+”:”+hexByte(mac[1])+”:”+
hexByte(mac[2])+”:”+hexByte(mac[3])+”:”+
hexByte(mac[4])+”:”+hexByte(mac[5]);System.out.println(mac_s);
程序运行结果:
192.168.1.187对应网卡的MAC是:
00:0c:f1:20:75:58
工作组和
计算机
名字类似,可以到库里找
java 怎么查看局域网的ip有哪些
点击系统桌面左下角的“开始”,然后在搜索框内输入“cmd”。
注:如果是XP系统,请依次点击“开始”再点击“运行”,接着在窗口中输入“cmd”就可以了,其它步骤相同!
在弹出的CMD命令中输入:ipconfig /all,并回车。
3
之后,我们会得到如下图的信息。
这里,我们只需要查看IPv4 地址,默认网关和DNS服务器就可以了。
如图标记的一样,IPv4 地址为我们本机的IP地址,剩余的默认网管和DNS服务器也是我们本机的默认网管和DNS地址。
java编程,获取局域网内服务器端的ip地址
socket.connect(new InetSocketAddress(ip, port), timeout)
看有没有抛异常 没异常就是已经连接上了
想获取服务器名称 可以用ARP协议 或者测试连接的时候服务器回应一个名称
package baiduzhidao;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
/**
* 端口号
*/
int port = 10000;
/**
* 连接延时
*/
int timeout = 300;
System.out.println(“Scanner Start…”);
Socket socket;
/**
* 扫描
*/
for (int i = 1, k = 254; i k; i++) {
if ((socket = isOnLine(“192.168.1.” + i, port, timeout)) != null) {
System.out.println(“Server:”
+ socket.getInetAddress().getHostAddress()
+ “:” + socket.getPort() + ” Is Waiting…”);
}
/**
* 关闭连接
*/
if (socket != null !socket.isClosed()) {
try {
socket.close();
} catch (IOException e) {
socket = null;
}
}
}
System.out.println(“Scanner end…”);
}
/**
* 测试连接服务器,返回连接成功后的Socket
*
* @param ip
* 服务器Ip
* @param port
* 服务器端口号
* @param timeout
* 连接延时
* @return 返回连接成功后的Socket
*/
private static Socket isOnLine(String ip, int port, int timeout) {
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress(ip, port), timeout);
} catch (IOException e) {
return null;
}
return socket;
}
}
java开发局域网ip的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于实现局域网、java开发局域网ip的信息别忘了在本站进行查找喔。