java本机局域网ip
Ⅰ 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();
Ⅱ 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以及序列号
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:如何用java取得本机外网的IP,本机在局域网内只能得到局域网内的IP
不知道你们学校有没有封ICMP协议,如果没有可以在cmd环境下使用:
tracert www.google.cn(任何一个外网地址都可以) 来查看数据包的路由情况
例如我在本机测试的结果如下:
Tracing route to cn.l.google.com [203.208.39.99]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 192.168.0.1
2 2 ms 3 ms 3 ms 123.*.*.1
3 1 ms 1 ms 1 ms 61.*.*.29
4 1 ms 1 ms 1 ms 61.*.*.109
5 1 ms 1 ms 1 ms bt-228-069.bta.net.cn[202.106.228.69]
6 2 ms 2 ms 1 ms cl4500.bta.net.cn [202.96.12.113]
7 1 ms 1 ms 1 ms 219.158.11.102
8 2 ms 1 ms 3 ms 219.158.32.222
9 3 ms 2 ms 2 ms 203.208.62.103
10 3 ms 2 ms 15 ms 203.208.62.118
11 3 ms 2 ms 2 ms 203.208.39.99
第一跳是网关,*是我自己改的,为了不引起某些人的兴趣并保护一下私有信息,如果某一条全部是*,则说明这一处可能是类似防火墙之类的设备,仔细找一下就应该能发现你自己的外网IP
干吗要用Java来做这种事情呢,使用windows批处理更简单:
@echo off
tracert www.google.cn>tracert.txt
pause
Ⅳ 怎样通过Java程序 获取本机IP地址..试了几种方法都不行 获取的都是192.168.*.*这种.想得到网络IP那种,求
你应该是拔号上网
如果可以的话,请搜索一下网络,得到java怎么调用dos的方法,然后你可以解析ipconfig /all这个命令的结果,得到你想要的公网IP
大部分情况下,用户都是通过路由来上网的,也就是说,电脑根本不知道自己的公网IP是多少,他只知道路由分配给它的内网IP,这个时候,我们只能通过别的网站来判断。
下面是以前我以前写的一个小程序,通过www.ip138.com得到自己的公网IP
程序我就不解释了,既然你能懂J2EE,应该能看懂下面的代码,无非是访问网络资源,简单的IO操作,字符串解析等。
public static void main(String[] args) throws Exception {
//
URL url = new URL("http://www.ip138.com/ip2city.asp");
URLConnection conn = url.openConnection();
conn.setRequestProperty(
"User-Agent",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15");
conn.setRequestProperty("Content-Type", "text/html");
conn.setRequestProperty("Accept",
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,
"GB2312"));
String line = null;
while ((line = br.readLine()) != null) {
if (line.contains("您的IP地址是")) {
// System.out.println(line);
int start = line.indexOf('[') + 1;
int end = line.indexOf(']');
System.out.println(line.substring(start, end));
}
}
br.close();
}
Ⅵ 如何用JAVA获取本机的局域网IP地址
InetAddress localAddress = InetAddress.getLocalHost();//获取ip地址
然后编译系统会提示你抛出异常等,点击加入就行了
Ⅶ java 判断是否为内网ip
内网IP是以下面几个段的IP.用户可以自己设置.常用的内网IP地址:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
----------------------选自网络--------------------------------------------------
由于以上ip段、我们只需要做判断ip是否属于以上3个网段就行了
publicbooleanisInner(Stringip)
{
Stringreg="(10|172|192)\.([0-1][0-9]{0,2}|[2][0-5]{0,2}|[3-9][0-9]{0,1})\.([0-1][0-9]{0,2}|[2][0-5]{0,2}|[3-9][0-9]{0,1})\.([0-1][0-9]{0,2}|[2][0-5]{0,2}|[3-9][0-9]{0,1})";//正则表达式=。=、懒得做文字处理了、
Patternp=Pattern.compile(reg);
Matchermatcher=p.matcher(ip);
returnmatcher.find();
}