1. 程式人生 > >java獲取本地IP和伺服器IP

java獲取本地IP和伺服器IP

java獲取IP地址

最近公司在做日誌報警服務,並將異常資訊推送到簡聊,需要在異常資訊上新增IP地址,用於快速定位異常位置。總結以下知識點:

  • 獲取本地IP地址
String address = InetAddress.getLocalHost().getHostAddress().toString();

這種方法能不能在Linux伺服器上直接獲取IP有待驗證

  • 獲取伺服器IP地址
    /**
     * 設定異常資訊
     * @param t 異常資訊。注意:這裡使用的是Throwable來接收引數,為什麼不是使用Exception?
     * 因為使用Exception接收的話,不好獲取具體的異常資訊,所以這裡使用Throwable來接收,然後再
     * 通過流的形式獲取具體的異常資訊
     */
public void setMsg(Throwable t) { ByteArrayOutputStream stream = new ByteArrayOutputStream(); t.printStackTrace(new PrintStream(stream)); String exceptionMsg = stream.toString(); log.error(exceptionMsg); // 記錄到本地日誌 JSONObject obj = new JSONObject(); obj.element("authorName"
, "異常報警"); obj.element("title", "IP為" + getServerIp() + "的又TM異常啦:"); obj.element("text", exceptionMsg); post(obj); } /** * 推送異常日誌資訊, * @param json 請求引數是用 net.sf.json.JSONObject 封裝 */ public void post(JSONObject json) { HttpClient client; HttpPost post; try
{ client = HttpClients.createDefault(); post = new HttpPost(logServer); // logServer 是簡聊的聚合服務地址 post.setHeader("Content-Type", "application/json"); post.addHeader("Authorization", "Basic YWRtaW46"); StringEntity s = new StringEntity(json.toString(), "utf-8"); s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); post.setEntity(s); // 傳送請求 HttpResponse httpResponse = client.execute(post); if (httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { log.info("請求伺服器失敗,請檢查推送伺服器"); } } catch (Exception e) { log.error("推送日誌異常資訊失敗"); e.printStackTrace(); } } /** * 獲取伺服器地址 * * @return Ip地址 */ public String getServerIp() { // 獲取作業系統型別 String sysType = System.getProperties().getProperty("os.name"); String ip; if (sysType.toLowerCase().startsWith("win")) { // 如果是Windows系統,獲取本地IP地址 String localIP = null; try { localIP = InetAddress.getLocalHost().getHostAddress(); } catch (UnknownHostException e) { log.error(e.getMessage(), e); } if (localIP != null) { return localIP; } } else { ip = getIpByEthNum("eth0"); // 相容Linux if (ip != null) { return ip; } } return "獲取伺服器IP錯誤"; } /** * 根據網路介面獲取IP地址 * @param ethNum 網路介面名,Linux下是eth0 * @return */ private String getIpByEthNum(String ethNum) { try { Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces(); InetAddress ip; while (allNetInterfaces.hasMoreElements()) { NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); if (ethNum.equals(netInterface.getName())) { Enumeration addresses = netInterface.getInetAddresses(); while (addresses.hasMoreElements()) { ip = (InetAddress) addresses.nextElement(); if (ip != null && ip instanceof Inet4Address) { return ip.getHostAddress(); } } } } } catch (SocketException e) { logger.error(e.getMessage(), e); } return "獲取伺服器IP錯誤"; }

第一次寫部落格,第一次用MarkDown,太多的第一次,加油!

相關推薦

java獲取本地IP伺服器IP

java獲取IP地址 最近公司在做日誌報警服務,並將異常資訊推送到簡聊,需要在異常資訊上新增IP地址,用於快速定位異常位置。總結以下知識點: 獲取本地IP地址 String address = InetAddress.getLocalHost().ge

客戶端IP伺服器IP講解?

IP(網路之間互連的協議) 網際網路協議地址(英語:Internet Protocol Address,又譯為網際協議地址),縮寫為IP地址(英語:IP Address),是分配給網上上使用網際協議(英語:Internet Protocol, IP)的裝置的數字標籤。常見的IP地址分為IPv

java本地連線無線網連結同時存在時,獲取目標IP同一網段的本地連結IP地址

import java.net.Inet4Address; import java.net.InetAddress; import java.net.InterfaceAddress; import java.net.NetworkInterface; import java

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

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

Java獲取本地IP計算機名

package com.bjsxt.base.bhz.nio.test; import java.net.InetAddress; import java.net.UnknownHostException; public class Test {public static

關於Java獲取本地伺服器IP的問題

Java獲取本地伺服器IP,我們最簡單的寫法: import java.net.InetAddress; public class CatchIp{ public static void main(String[] args) { try

Java獲取本地伺服器Ip的方法

@SuppressWarnings("rawtypes")private static String getHostIp() {Enumeration allNetInterfaces = null;try {allNetInterfaces = NetworkInterf

java獲取本機名稱、IP、MAC地址網卡名稱

sans mon any flex exc consola 獲取本地ip network log java獲取本機名稱、IP、MAC地址和網卡名稱摘自:https://blog.csdn.net/Dai_Haijiao/article/details/80364370 20

java 獲取本地系統IP 及網咯IP

public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost();//獲取的是本地的IP地址 //PC-20140317PXKX/192.168.0.121

Java獲取本地IP地址

import java.net.*; publicclass ip5 { publicstaticvoid main(String args[]) throws Exception { String ip = InetAddress.getLoc

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

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

java獲取本地區域網的外網IP ....

近日為了滿足2個屋子裡人的通訊需要,需要將本地的外網IP告訴給另一個屋子裡的人。以前都是在群裡喊一句,我這裡的IP是XXXX,有一天自己突發奇想,想通過程式來實現這個自動化通知的過程。於是自己給自己定了需求。       需求:基本目標實現開機將本地的路由WAN

java 獲取本地路由器分配給電腦的IP地址與主機名相關

本人最近做PC端專案,遇到一個ip地址相關通訊方面的問題,經過網上資料的一些查詢覺得目前此方法相對較好,特在此做個記錄,各位路過的大神,如有更好的方法,麻煩留下解答,讓小弟借鑑下. 下面進入正題,首先獲取到本機的ip地址,比較簡單(主要通過cmd指令arp -

Java獲取客戶端及區域網ip埠地址

在java專案Controller層加入下面程式碼: public Map<String,Object>selectAccessory(HttpServletRequest request){ //public Map<String,Object>

java獲取本地ip地址

/*** 獲取本機的IP* * @return Ip地址*/public static String getLocalHostIP() throws Exception {String ip = null;/** 返回本地主機。 */InetAddress addr = I

java獲取本地ip

package com.tianjian.property.jieshuns.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.In

php獲取使用者伺服器ip及其地理位置詳解

瀏覽器訪問獲取使用者ip: /** * php獲取使用者真實 IP * 注意這種方式只適用於瀏覽器訪問時 */ function getIP() { if (isset($_SERVER)){ if (isset($_SERVER["HTTP_

java獲取本地真實ip

一、問題在獲取本地ip這個問題上遇見了問題。1、InetAddress.getLocalHost()得到的是VMnet8的ip地址,而並非本地真實ip。2、InetAddress.getLocalHost().getHostAddress()獲取到的是127.0.0.1二、解

Java獲取HTTP請求的真實IP

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

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

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