首頁>Club>
用筆記本上網,網線埠插網線同時把WIFI開啟,即本地連線和無線連線同時開啟,獲取了兩個IP地址,在瀏覽網頁時,資訊從哪個路徑走的?
19
回覆列表
  • 1 # 小楊網際網路

    一臺電腦兩個IP,資訊如何傳遞? 這個問題很有意思,我們實踐出真知!

    解決思路:1,介面卡網路除錯。(採用)

    2,抓包工具獲取當前請求的實際ip地址。

    話不多說上圖:

    頁面圖示顯示有線無線都連線了,但是預設連線的網路顯示是有線。

    第一步:

    我們可以透過cmd命令 ipconfig 檢視當前閘道器 ip 和dns 等。

    ipconfig /all可以檢視詳細資訊,這裡我把dns 都隱藏了防止dns劫持。

    wlan代表是當前wifi網路 192.168.40.193

    乙太網2就是有線網路 192.168.10.130

    vmnet8這個是我虛擬機器的網路 192.168.85.1

    配置的虛擬ip,這個ip是根據手機熱點的閘道器設定的,虛擬網路如果要訪問電腦上面的網路,必須在同一閘道器下,再關閉虛擬機器防火牆,ping通才能訪問。

    第三步 透過頁面地址訪問後臺獲取當前區域網本地ip地址:

    電腦本機地址為127.0.0.1 預設這個地址dns解析的ip地址。

    開啟測試介面工具訪問,我們後臺地址就是返回前端頁面介面api,所以頁面的請求引數和ip會根據我們實際區域網ip訪問,那麼我們就可以獲取當前用的哪個網路的ip。

    3.1 測試當前網路

    這是後臺除錯抓取的地址,我啟用的虛擬機器的ip,所以預設選擇net8網路

    這是獲取ip的核心程式碼:

    @SuppressWarnings("rawtypes")private InetAddress getLocalHostLANAddress() throws UnknownHostException {try {InetAddress candidateAddress = null;// 遍歷所有的網路介面for (Enumeration ifaces = NetworkInterface.getNetworkInterfaces(); ifaces.hasMoreElements();) {NetworkInterface iface = (NetworkInterface) ifaces.nextElement();// 在所有的介面下再遍歷IPfor (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;}}

    3.2 啟用有線網路在除錯關閉虛擬網路:

    傳送請求獲取結果:

    當前ip是我們有線ip

    3.3 關閉有線網路啟用無線網路除錯:

    傳送請求獲取結果:

    總結:

    根據以上我們第一種思路可以得出結論,網路請求訪問是根據當前你的電腦適配網路選擇來的,根據你啟用的網路獲取當前閘道器進行ip轉發和訪問,預設不設定走有線網路。第二種思路可以根據第三方工具抓包獲取當前的解析資料包,也可以分析出當前的網路,毫無疑問抓包的網路也是根據當前你的網路介面卡來的。

    最後:

    但是我們不難發現,我在頁面訪問的時候可以用192.168.40.193 192.168.10.130 這倆個ip進行介面訪問。我們發現都可以訪問,大家或許有疑問,我明明後臺測試的只有一個ip,為啥都可以訪問?那這個問題就給朋友們留下了伏筆了!歡迎大家留言評論!

  • 中秋節和大豐收的關聯?
  • 果葡糖漿可以替代蔗糖嗎?有什麼用途?