檢視是不是那裡出了問題。要想解決這個問題,就要先找到那些地方插入ip,插入時是怎麼獲取的。
順藤摸瓜,找到了getip(),這個方法,進入原始方法檢視,發現方法是httpcontext.class
中提供的,但是不知道為什麼不生效。於是我決定改變策略,不如自己寫乙個工具類,提供getaddress()獲取公網ip.
public static string getipaddress()
if (ipaddress == null || ipaddress.length() == 0 || "unknown".equalsignorecase(ipaddress))
if (ipaddress == null || ipaddress.length() == 0 || "unknown".equalsignorecase(ipaddress))
if (ipaddress == null || ipaddress.length() == 0 || "unknown".equalsignorecase(ipaddress))
if (ipaddress == null || ipaddress.length() == 0 || "unknown".equalsignorecase(ipaddress)) catch (unknownhostexception e)
ipaddress = inet.gethostaddress();}}
//對於通過多個**的情況,第乙個ip為客戶端真實ip,多個ip按照','分割
if (ipaddress != null && ipaddress.length() > 15)
}return ipaddress;
}
通過生成web位址我就能用手機訪問我的web專案了,然後比對用手機訪問獲取的ip有什麼不同,就能測試出工具類是否生效。但是切記手機不要連線wifi,要不然你會發現手機訪問的ip跟你電腦的一樣。
可以根據自己專案的埠進行自定義配置
後續的操作,上述提供的新手教學官方教程都有。完整配置好之後就可以用手機訪問生成的**鏈結。之後再測試getipaddress()是否成功實現。
frp內網穿透,無公網ip訪問內網服務
這裡只是配置了http協議穿透,可以在內網提供http服務,在公網訪問 其他的tcp或者udp,frp這個軟體也是支援的,我暫時用不到所以沒去探索 簡單寫一下吧 工具 frp 寶塔 內網客戶端 win10系統 公網服務端 centos7.6 建議內網客戶端先建立站點並配置好服務 站點網域名稱為127...
內網ip 公網ip
a類位址的第一組數字為1 126。注意,數字0和 127不作為a類位址,數字127保留給內部回送函式,而數字0則表示該位址是本地宿主機,不能傳送。b類位址的第一組數字為128 191。c類位址的第一組數字為192 223。1.a類位址 a類位址的表示範圍為 0.0.0.0 126.255.255.2...
內網ip 公網ip
a類位址的第一組數字為1 126。注意,數字0和 127不作為a類位址,數字127保留給內部回送函式,而數字0則表示該位址是本地宿主機,不能傳送。b類位址的第一組數字為128 191。c類位址的第一組數字為192 223。1.a類位址 a類位址的表示範圍為 0.0.0.0 126.255.255.2...