1. 程式人生 > >java 獲取本地機器外網的IP地址

java 獲取本地機器外網的IP地址

  1. package org.shuochen.test.network;
  2. import java.net.InetAddress;
  3. import java.net.NetworkInterface;
  4. import java.net.SocketException;
  5. import java.util.Enumeration;
  6. /**
  7. * Helper class the get the external net IP address
  8. */
  9. public class ServerHost {
  10.     /**
  11.      * Singleton instance
  12.      */
  13.     private static final ServerHost instance = new ServerHost();
  14.     /**
  15.      * Access Control
  16.      */
  17.     private ServerHost(){};
  18.     /**
  19.      * @return instance
  20.      */
  21.     public static ServerHost getInstance() {
  22.         return instance;
  23.     }
  24.     public String getExtranetIPv4Address(){
  25.         return searchNetworkInterfaces(IPAcceptFilterFactory.getIPv4AcceptFilter());
  26.     }
  27.     public String getExtranetIPv6Address(){
  28.         return searchNetworkInterfaces(IPAcceptFilterFactory.getIPv6AcceptFilter());
  29.     }
  30.     public String getExtranetIPAddress(){
  31.         return searchNetworkInterfaces(IPAcceptFilterFactory.getIPAllAcceptFilter());
  32.     }
  33.     private String searchNetworkInterfaces(IPAcceptFilter ipFilter){
  34.         try {
  35.             Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
  36.             while (enumeration.hasMoreElements()) {
  37.                 NetworkInterface networkInterface = enumeration.nextElement();
  38.                 //Ignore Loop/virtual/Non-started network interface
  39.                 if (networkInterface.isLoopback() || networkInterface.isVirtual() || !networkInterface.isUp()) {
  40.                     continue;
  41.                 }
  42.                 Enumeration<InetAddress> addressEnumeration = networkInterface.getInetAddresses();
  43.                 while (addressEnumeration.hasMoreElements()) {
  44.                     InetAddress inetAddress = addressEnumeration.nextElement();
  45.                     String address = inetAddress.getHostAddress();
  46.                     if(ipFilter.accept(address)){
  47.                         return address;
  48.                     }
  49.                 }
  50.             }
  51.         } catch (SocketException e) {
  52.             //consider log for this exception
  53.         }
  54.         return "";
  55.     }
  56. }

相關推薦

java 獲取本地機器IP地址

package org.shuochen.test.network; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumer

java web獲取客戶端ip和所在區域

@參考文章1、@參考文章2、@參考文章3、@參考文章4,@之前同事的專案  controller @Controller @RequestMapping("/home") public class HomeController { @RequestMappin

教你用shell指令碼在Linux上獲取IP地址

基於Linux系統的獲取外網IP地址的shell指令碼,指令碼內容如下: getIp.sh #!/bin/bash #檢查IP的合法性 check_ipaddr() { echo $1|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}

c++ 獲取ip地址

// 外部呼叫 ============================================== networkip.GetLocalIP(); string retip = networkip.GetInternetIP(); // 封裝實現 =======

android 根據網路來獲取ip地址及國家,地區的介面

新浪的IP地址查詢介面:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 新浪多地域測試方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?form

獲取本機的IP地址

{   Uri uri =new Uri("http://www.ikaka.com/ip/index.asp");//查本機網路IP的網頁   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);   req.Method ="POST";

通過JS獲取真實的IP和內IP以及IPv6地址

由於需求需要獲取到本機ip地址,查了半天相關只是不知所云,最後偶然得已法,遂試,果然ok,直接看下文。 通過JS獲取你真實的外網IP和內網IP以及IPv6地址,就算開代理也沒有用,想想真是太6,還能不能愉快的裝逼了,效果如下:

C#獲取IP地址;C#獲取所在IP城市地址

public static string GetIP()         {             using (var webClient = new WebClient())             {                 try            

C#/.NET獲取本機的IP地址的簡單方法

<noscript type="text/javascript"> </noscript> <noscript src="http://pagead2.googlesyndication.com/pagead/show_ads.js" typ

查詢某軟件所連接的IP地址

分享 環境 過濾規則 上網 follow 分析 bsp targe href 一:背景環境: 1>:某機械公司用的某些特殊軟件,需要實現所有使用某軟件的屏蔽其軟件所連接的外網ip,其他上網功能不做限制。 二:需求分析:可以查出此軟件所連接的外網ip,在路由器的ip

H3C SecPath U200-S 如何在內使用IP地址訪問內服務器

ask 直接 添加 light outb 端口 圖片 沒有 查看大圖 H3C SecPath U200-S 如何在內網使用外網IP地址訪問內網服務器 ------------------------------------------------------------

雲服務器查看IP地址方法

sha dig 返回 har .cn res conf pen tis #返回IP地址 curl ip.6655.com/ip.aspx curl whatismyip.akamai.com wget -qO - ifconfig.co curl ic

Java獲取客戶端使用者真實IP地址

在JSP裡,獲取客戶端的IP地址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過了Apache,Squid,nginx等反向代理軟體就不能獲取到客戶端的真實IP地址了。 如果使用了反向代理軟體,將http://192.168.1.110

bigemap如何切換IP地址

  在使用地圖下載器的過程中,由於訪問的國外網路,所以網路的執行商(電信、移動、聯通)會根據各地的情況封鎖你要訪問的國外地址,在封鎖的過程因為不可能封鎖所有的國外訪問,所以只是遮蔽了你的IP地址,這時候我們只需要重新獲得一個新的IP地址就可以繼續使用了。具體如下:  &nbs

用Python獲取本地主機名及IP地址的簡單方式

方法一: >>> import socket >>> # 獲取主機名 >>> hostname = socket.gethostname() >>> hostname 'USER-20150331GI' >>

Java獲取客戶端所在的IP地址和伺服器地址

/** 2 * 獲取本地IP地址 3 * @return 4 */ public static void main(String[] args) { 2

java獲取訪問者主機名和IP地址

String ip = request.getHeader("x-forwarded-for");  if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {      ip = request.getHeader("

Java獲取客戶端/訪問者真實IP地址的兩種方法

在JSP裡,獲取客戶端的IP地址的方法是:request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過了Apache,Squid等反向代理軟體就不能獲取到客戶端的真實IP地址了。在JSP裡,獲取客戶端的IP地址的方法是:request.get

Android 獲取當前裝置IP以及DNS.

如題,最近做個專案,需要獲取當前裝置IP地址和DNS地址.但是按照Android提供的方法獲取的都是內網.網易提供了一個解決方案:請求地址:http://xx.nstool.netease.comxx為當前格林威治時間,請求返回結果是一個html內容,需要解析中間的src欄位

java程式碼中得到本地ip地址獲取客戶端請求IP(終端使用者的網際網路或內IP地址

 private static String getLocalIP() throws Exception{    String localIP = "";    InetAddress addr = (InetAddress) InetAddress.getLocalHos