//獲取ip地址
創(chuàng)新互聯(lián)建站成立10余年來(lái),這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、國(guó)際域名空間、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開(kāi)快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)建站通過(guò)對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
public String getLocalIpAddress()
{
try {
String ipv4;
ArrayListNetworkInterface nilist = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface ni: nilist)
{
ArrayListInetAddress ialist = Collections.list(ni.getInetAddresses());
for (InetAddress address: ialist)
{
if (!address.isLoopbackAddress() InetAddressUtils.isIPv4Address(ipv4=address.getHostAddress()))
{
return ipv4;
}
}
}
} catch (SocketException ex)
{
//Log.e(LOG_TAG, ex.toString());
}
return null;
}
1、如果服務(wù)器如果沒(méi)有采用反向代理,而且客戶端沒(méi)有用正向代理的話,那么可以獲取客戶端的真實(shí)IP地址request.getRemoteAddr()
2、如果服務(wù)器如果沒(méi)有采用反向代理,而且客戶端有用正向代理的話,那么通過(guò)request.getRemoteAddr()獲取客戶端的IP地址是客戶端 的代理服務(wù)器的地址,并不是客戶端的真實(shí)地址
3、如果客戶端使用的是多層代理的話,服務(wù)器獲得的客戶端地址是客戶端的最外圍代理服務(wù)器的地址如果服務(wù)器如果采用反向代理服務(wù)器,不管客戶端采用的是何種方式訪問(wèn)服務(wù)器
import java.io.*;
import java.util.*;
import java.net.InetAddress;
public class Ip{
static public HashMap ping; //ping 后的結(jié)果集
public HashMap getPing(){ //用來(lái)得到ping后的結(jié)果集
return ping;
}
//當(dāng)前線程的數(shù)量, 防止過(guò)多線程摧毀電腦
static int threadCount = 0;
public Ip() {
ping = new HashMap();
}
public void Ping(String ip) throws Exception{
//最多30個(gè)線程
while(threadCount30)
Thread.sleep(50);
threadCount +=1;
PingIp p = new PingIp(ip);
p.start();
}
public void PingAll() throws Exception{
//首先得到本機(jī)的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++){ //對(duì)所有局域網(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){}
}
}
}
你好,可以把IP去掉‘.’,然后再比較
private bool validateIP(string startIP,string endIP)
{
// 分離出ip中的四個(gè)數(shù)字位
string[] startIPArray = startIP.Split('.');
string[] endIPArray = endIP.Split('.');
// 取得各個(gè)數(shù)字
long[] startIPNum = new long[4];
long[] endIPNum = new long[4];
for (int i = 0; i 4; i++)
{
startIPNum[i] = long.Parse(startIPArray[i].Trim());
endIPNum[i] = long.Parse(endIPArray[i].Trim());
}
// 各個(gè)數(shù)字乘以相應(yīng)的數(shù)量級(jí)
long startIPNumTotal = startIPNum[0] * 256 * 256 * 256 + startIPNum[1] * 256 * 256 + startIPNum[2] * 256 + startIPNum[3];
long endIPNumTotal = endIPNum[0] * 256 * 256 * 256 + endIPNum[1] * 256 * 256 + endIPNum[2] * 256 + endIPNum[3];
if (startIPNumTotal endIPNumTotal)
{
return false;
}
else
{
return true;
}
}
public class GetRealIp {
public static void main(String[] args) throws SocketException {
System.out.println(GetRealIp.getRealIp());
}
public static String getRealIp() throws SocketException {
String localip = null;// 本地IP,如果沒(méi)有配置外網(wǎng)IP則返回它
String netip = null;// 外網(wǎng)IP
EnumerationNetworkInterface netInterfaces =
NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
boolean finded = false;// 是否找到外網(wǎng)IP
while (netInterfaces.hasMoreElements() !finded) {
NetworkInterface ni = netInterfaces.nextElement();
EnumerationInetAddress address = ni.getInetAddresses();
while (address.hasMoreElements()) {
ip = address.nextElement();
if (!ip.isSiteLocalAddress()
!ip.isLoopbackAddress()
ip.getHostAddress().indexOf(":") == -1) {// 外網(wǎng)IP
netip = ip.getHostAddress();
finded = true;
break;
} else if (ip.isSiteLocalAddress()
!ip.isLoopbackAddress()
ip.getHostAddress().indexOf(":") == -1) {// 內(nèi)網(wǎng)IP
localip = ip.getHostAddress();
}
}
}
if (netip != null !"".equals(netip)) {
return netip;
} else {
return localip;
}
}
}
自己寫(xiě)了一個(gè)幫你實(shí)現(xiàn),希望對(duì)你有幫助
新聞標(biāo)題:javaip代碼,java ip
文章分享:http://muchs.cn/article24/hcigce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、外貿(mào)建站、網(wǎng)站制作、App設(shè)計(jì)、做網(wǎng)站、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)