1.得到局域網(wǎng)網(wǎng)段,可由自己機器的IP來確定 (也可以手動獲取主機IP-CMD-ipconfig /all)
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),惠來企業(yè)網(wǎng)站建設(shè),惠來品牌網(wǎng)站建設(shè),網(wǎng)站定制,惠來網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,惠來網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
2.根據(jù)IP類型,一次遍歷局域網(wǎng)內(nèi)IP地址
JAVA類,編譯之后直接運行便可以得到局域網(wǎng)內(nèi)所有IP,具體怎樣使用你自己編寫相應(yīng)代碼調(diào)用便可
代碼如下::
package bean;
import java.io.*;
import java.util.*;
public class Ip{
static public HashMap ping; //ping 后的結(jié)果集
public HashMap getPing(){ //用來得到ping后的結(jié)果集
return ping;
}
//當(dāng)前線程的數(shù)量, 防止過多線程摧毀電腦
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,得到網(wǎng)段
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++){ //對所有局域網(wǎng)Ip
String iip=ss+i;
Ping(iip);
}
//等著所有Ping結(jié)束
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);
//讀取結(jié)果行
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");
//線程結(jié)束
threadCount -= 1;
}catch (IOException e){}
}
}
}
1、如果服務(wù)器如果沒有采用反向代理,而且客戶端沒有用正向代理的話,那么可以獲取客戶端的真實IP地址request.getRemoteAddr()
2、如果服務(wù)器如果沒有采用反向代理,而且客戶端有用正向代理的話,那么通過request.getRemoteAddr()獲取客戶端的IP地址是客戶端 的代理服務(wù)器的地址,并不是客戶端的真實地址
3、如果客戶端使用的是多層代理的話,服務(wù)器獲得的客戶端地址是客戶端的最外圍代理服務(wù)器的地址如果服務(wù)器如果采用反向代理服務(wù)器,不管客戶端采用的是何種方式訪問服務(wù)器
Java中可以使用程序來獲取本地ip地址和mac地址,使用InetAddress這個工具類,示例如下:
import?java.net.*;
public?class?NetInfo?{
public?static?void?main(String[]?args)?{
new?NetInfo().say();
}
public?void?say()?{
try?{
InetAddress?i?=?InetAddress.getLocalHost();
System.out.println(i);??????????????????//計算機名稱和IP
System.out.println(i.getHostName());????//名稱
System.out.println(i.getHostAddress());?//只獲得IP
}
catch(Exception?e){e.printStackTrace();}
}
}
也可以通過命令行窗口來查看本地ip和mac地址,輸入命令:ipconfig。