91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何獲取本機IP地址

發布時間:2020-09-27 07:13:26 來源:腳本之家 閱讀:232 作者:暴走地水牛 欄目:編程語言

本文實例為大家分享了java實現獲取本機IP地址的具體代碼,供大家參考,具體內容如下

原因:同一臺機子上開著兩個web工程,現在有需求需要保證兩個項目之間交互的安全問題。因為有個舊的項目,所以盡量不做改動。只能在新項目中做改動。

處理辦法:獲取本地的IP地址,有請求進來時查看請求的來源,只有來源是本地IP的才予以通過。

代碼如下:

 /**
 * 任務調度調用攔截器
 */
public class TaskControlInterceptor implements Interceptor {

  //存放本機IP地址列表(包括ipv4和ipv6)
  private static Set<String> localHostList = new HashSet<>();

  @Override
  public void intercept(Invocation inv) {
   Controller controller = inv.getController();
   HttpServletRequest request = controller.getRequest();
   /*
   獲取本機的IP地址列表
   請求的時候判斷來源IP地址是否在該列表中,如果不在的話則不予通過
    */
   if (localHostList.size() == 0) {
     localHostList = getIpAddress();
   }
   if (StringUtils.isNotBlank(request.getRemoteAddr())) {
     if (!localHostList.contains(request.getRemoteAddr())) {
      Result result = new Result(new Error("450","非法的請求,請求來源IP地址不是本機"));
      controller.getResponse().setStatus(450);
      controller.renderJson(result);
      return;
     }
   } else {
     Result result = new Result(new Error("450","非法的請求,請求來源IP地址為空"));
     controller.getResponse().setStatus(450);
     controller.renderJson(result);
     return;
   }
   inv.invoke();
  }

  /**
  * 獲取本機的IP地址(包括ipv4和ipv6)
  * <br>包含回環地址127.0.0.1和0:0:0:0:0:0:0:1
  */
  private static Set<String> getIpAddress() {
   Set<String> ipList = new HashSet<>();
   try {
     Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
     InetAddress ip = null;
     while (allNetInterfaces.hasMoreElements()) {
      NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
      //排除虛擬接口和沒有啟動運行的接口
      if (netInterface.isVirtual() || !netInterface.isUp()) {
        continue;
      } else {
        Enumeration<InetAddress> addresses = netInterface.getInetAddresses();
        while (addresses.hasMoreElements()) {
         ip = addresses.nextElement();
         if (ip != null && (ip instanceof Inet4Address || ip instanceof Inet6Address)) {
           ipList.add(ip.getHostAddress());
         }
        }
      }
     }
   } catch (Exception e) {
     e.printStackTrace();
   }
   return ipList;
  }

}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大化| 喀喇沁旗| 聊城市| 正安县| 平陆县| 遂溪县| 商河县| 泰和县| 铁力市| 蓬溪县| 漯河市| 宜章县| 朝阳县| 易门县| 秀山| 分宜县| 洛隆县| 泉州市| 施甸县| 晋州市| 巴林左旗| 台山市| 湖南省| 琼海市| 十堰市| 珠海市| 嘉祥县| 军事| 丁青县| 大理市| 乐昌市| 沧州市| 白玉县| 常山县| 洪洞县| 壤塘县| 金寨县| 拉孜县| 屏南县| 沅陵县| 甘孜县|