亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

宣恩县| 长宁县| 松阳县| 游戏| 东丽区| 金山区| 象山县| 慈溪市| 龙江县| 尖扎县| 吉隆县| 东平县| 虎林市| 比如县| 桃江县| 绥棱县| 和政县| 姚安县| 阜城县| 江北区| 革吉县| 翁牛特旗| 通城县| 西昌市| 阿拉尔市| 乐陵市| 湘潭市| 石屏县| 古浪县| 彩票| 台东市| 浑源县| 深州市| 民和| 呼和浩特市| 大渡口区| 祁东县| 昆山市| 特克斯县| 温宿县| 邵阳县|