1. 程式人生 > >Java獲取網路請求時區域網內的本地IP

Java獲取網路請求時區域網內的本地IP

見程式碼

        // 正確的IP拿法,即優先拿site-local地址
        @SuppressWarnings("rawtypes")
        private  InetAddress getLocalHostLANAddress() throws UnknownHostException {
            try {
                InetAddress candidateAddress = null;
                // 遍歷所有的網路介面
                for (Enumeration ifaces = NetworkInterface.getNetworkInterfaces(); ifaces.hasMoreElements();) {
                    NetworkInterface iface = (NetworkInterface) ifaces.nextElement();
                    // 在所有的介面下再遍歷IP
for (Enumeration inetAddrs = iface.getInetAddresses(); inetAddrs.hasMoreElements();) { InetAddress inetAddr = (InetAddress) inetAddrs.nextElement(); if (!inetAddr.isLoopbackAddress()) {// 排除loopback型別地址 if
(inetAddr.isSiteLocalAddress()) { // 如果是site-local地址,就是它了 return inetAddr; } else if (candidateAddress == null) { // site-local型別的地址未被發現,先記錄候選地址 candidateAddress = inetAddr; } } } } if
(candidateAddress != null) { return candidateAddress; } // 如果沒有發現 non-loopback地址.只能用最次選的方案 InetAddress jdkSuppliedAddress = InetAddress.getLocalHost(); if (jdkSuppliedAddress == null) { throw new UnknownHostException("The JDK InetAddress.getLocalHost() method unexpectedly returned null."); } return jdkSuppliedAddress; } catch (Exception e) { UnknownHostException unknownHostException = new UnknownHostException( "Failed to determine LAN address: " + e); unknownHostException.initCause(e); throw unknownHostException; } }

相關推薦

Java獲取網路請求區域網本地IP

見程式碼 // 正確的IP拿法,即優先拿site-local地址 @SuppressWarnings("rawtypes") private

Java 網路程式設計(1):使用 NetworkInterface 獲得本機在區域網IP 地址

原文地址:https://segmentfault.com/a/1190000007462741 1、問題提出 在使用 Java 開發網路程式時,有時候我們需要知道本機在區域網中的 IP 地址。很常見的一種做法是呼叫本地命令(比如 Windows 上的 ipconfig 命令和 Li

JAVA獲取網路圖片儲存本地

package cn.test.net;   import java.io.File;   import java.io.FileOutputStream;   import java.io.InputStream;   import ja

java工具類,在Windows,Linux系統獲取電腦的MAC地址、本地IP、電腦名

copy iter 去掉m [] equals linu stat cli catch package com.cloudssaas.util; import java.io.BufferedReader; import java.io.IOException;

java獲取mp3的長和播放mp3文件

length trace ger snapshot import oid 時長 cnblogs return 所需包為jaudiotagger-2.2.6-SNAPSHOT.jar和jl1.0.1.jar。 import java.io.BufferedInputStre

Java獲取此次請求URL以及服務器根路徑的方法

h+ clas string pan gets pps 內容 端口 index http://www.jb51.net/article/71693.htm ********************************************** 本文介紹了Java獲取此

python3 urllib3發出網路請求SSL: CERTIFICATE_VERIFY_FAILED

python3使用urllib3請求時出現SSL: CERTIFICATE_VERIFY_FAILED錯誤: 安裝安全模式:pip install requests[security] 此時如果出現command 'x86_64-linux-gnu-gcc' failed with ex

Java獲取HTTP請求的真實IP

本文介紹使用Java獲取HTTP請求的真實IP,包括了對反向代理、代理客戶端、多個IP情況的處理。 請參考以下程式碼片段: /**  * 獲取真實IP  * @param request 請求體  * @return 真實IP  */ public s

獲取網路請求

package com.example.lvxinxin.androidzxdayone; import android.annotation.SuppressLint; import android.graphics.Bitmap; import android.graphics.Bi

Java獲取HTTP請求的上下文絕對路徑

本文介紹使用Java獲取一個請求的完整的 協議名+主機+埠號,如:http://127.0.0.1:14530。獲取該地址後,可以設為全域性變數(contextPath),在系統頁面中作為路徑字首使用。 請參考以下程式碼片段: // 獲取HTTP請求的上下文絕對路徑(完整的協議名+主機+埠號

Android網路請求,漢字轉化為url編碼

 在開始討論編碼解碼之前,首先來明確一下問題。 什麼是application/x-www-form-urlencoded字串? 答:它是一種編碼型別。當URL地址裡包含非西歐字元的字串時,系統會將這些字元轉換成application/x-www-form-urlenc

IIS部署網站 本地正常訪問 區域網別的ip沒法訪問

解決: 用ping命令來檢查是否能遠端連線和網路通暢,不通的話進行對外開放相對應的埠的操作 (備註:無法遠端連線資料庫也是如下操作。) 步驟: 1.【開始】-【控制面板】-【Windows防火牆】 2.左側【高階設定】 3.雙擊左側【入站規則】-右側出現操作選

java獲取發起請求使用者的真實ip

public static String getIpAddr(HttpServletRequest request) { try { String ip = request.getHeader("x-forwarded-for"); if (ip == n

Java獲取post請求json資料

一般情況下,web應用中,瀏覽器傳送http請求,傳引數的時候都是作為param傳遞的,java服務端通過request.getParameter(name)可以獲取引數內容; 但是會有一些場景,把引數放在了http的payload中(contentType:”application/json”),這時,使

java上傳檔案到區域網的另一臺計算機上

分析   今天又遇到一個問題:怎樣將檔案上傳到區域網內的另一臺機器上。解決方案粗略的想了下大概有如下幾種: 1. 搭建一臺FTP伺服器,然後通過FTP協議進行檔案傳輸。這個方式固然有效,但是有點麻

Java獲取視訊的長——日期時間處理

Problem: 如何通過Java獲取視訊的時長? 想通過Java來獲取某資料夾(或多個資料夾)下的視訊的總時長 經過查詢資料,發現可以通過JAVE實現:The JAVE (Java Audio Video Encoder) library is

php;獲得本地區域網ip

    主要是通過本地域名來獲得。 <?php $host_name = exec("hostname"); $host_ip = gethostbyname($host_name); //獲

關於retrofit進行網路請求發生的奇怪錯誤

在我們進行的網路請求中,伺服器得到的資料是亂的,具體混亂格式及情況如下: 1.api介面如下: 2.建立retrofit例項: 3.網路工具類的單例化 4.提供一個對外的方法 5.在activity裡面呼叫api及網路工具類 然後我們傳入一個map集合到getal

Java獲取get請求圖片資源

使用Apache的HttpClient包 import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.http.Ht

使用Java讀取網路圖片並儲存至本地

使用JAVA讀取網路圖片並儲存至本地 package com.mytest; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStre