獲取發送請求伺服器的ip
Ⅰ java的servlet 不通過request能獲取到伺服器IP與提供的埠號嗎。
這個可不是的,request相當於客戶端,瀏覽器端的請求,是通過request的構造方法進行表單的提交,然後再分裝到實體對象中,再調用業務層濟寧處理數據,然後後面再進行操作了
Ⅱ php如何獲取請求介面資源的請求者的IP地址
php獲取介面資源的IP地址:
<?php
function getIPLoc_sina($queryIP){
$url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_ENCODING ,'utf8');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 獲取數據返回
$location = curl_exec($ch);
$location = json_decode($location);
curl_close($ch);
$loc = "";
if($location===FALSE) return "";
if (empty($location->desc)) {
$loc = $location->province.$location->city.$location->district.$location->isp;
}else{ $loc = $location->desc;
}
return $loc;
}
echo getIPLoc_sina("183.37.209.57");
?>
Ⅲ http代理IP如何獲取
大多情況下,爬蟲用戶自己是沒有能力去自己維護伺服器或者是自己解決代理ip的問題的,一來是因為技術含量太高,二來是因為成本太高當然,也有很多人會在網上開放型代理,但是從實用性、穩定性以及安全性來考慮,不建議大家使用。
在爬蟲的過程中,我們經常會遇見很多網站採取了防爬取技術,或者說因為自己採集網站信息的強度和採集速度太大,給對方伺服器帶去了太多的壓力,所以你一直用同一個代理IP爬取這個網頁,很有可能IP會被禁止訪問網頁,所以基本上做爬蟲的都躲不過去IP的問題,需要很多的IP來實現自己IP地址的不停切換,達到正常抓取信息的目的。
代理IP的獲取,可以從以下幾個途徑得到:
一、第三方平台
有一些平台可以不需成本獲取一些IP,直接搜索引擎在官網上找,然後驗證代理IP是否有效,延遲時間等等,可以導出來使用,也可以直接右鍵設置IE代理。不足的是,效率低,不穩定,速度慢,爬出來做一些簡單的業務勉強可以完成,一些需要高質量IP的業務只能另尋他法。
二、ADSL撥號
ADSL撥號也就是我們常說的撥號VPS,撥一次號可以換一次IP,相對來說比較穩定,自己控制撥號時間,比開放型代理穩定。但對於爬蟲工作來說,還是繁瑣效率比較低。
三、自建代理IP
采購一批撥號VPS伺服器,利用squid+stunnel搭建一台HTTP高匿代理伺服器,proxy也可以搭建。自建代理比較穩定,只有自己使用,效果也比較好。不過這個需要一定技術要求,不適合新手小白。
四、代理IP
建議在選擇的時候要根據自身的要求選擇,比如有效時間,提取數量,HTTP還是socks5等等,需要從你個人的需求出發,一一概況全部使用情況,自己需要去做出判斷。IPIDEA包含http/https/socks,具備全球220+國家地區的高匿名資源支持自定義提取。
Ⅳ java怎麼獲取請求的ip
java獲取外網ip地址方法:
public class Main {
public static void main(String[] args) throws SocketException {
System.out.println(Main.getRealIp());
}
public static String getRealIp() throws SocketException {
String localip = null;// 本地IP,如果沒有配置外網IP則返回它
String netip = null;// 外網IP
Enumeration<NetworkInterface> netInterfaces =
NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
boolean finded = false;// 是否找到外網IP
while (netInterfaces.hasMoreElements() && !finded) {
NetworkInterface ni = netInterfaces.nextElement();
Enumeration<InetAddress> address = ni.getInetAddresses();
while (address.hasMoreElements()) {
ip = address.nextElement();
if (!ip.isSiteLocalAddress()
&& !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {// 外網IP
netip = ip.getHostAddress();
finded = true;
break;
} else if (ip.isSiteLocalAddress()
&& !ip.isLoopbackAddress()
&& ip.getHostAddress().indexOf(":") == -1) {// 內網IP
localip = ip.getHostAddress();
}
}
}
if (netip != null && !"".equals(netip)) {
return netip;
} else {
return localip;
}
}
}
Ⅳ 伺服器IP、內網IP和外網IP有什麼聯系分別是怎樣獲得的
公網ip具有世界范圍的唯一性,而內網ip只在區域網內部具有唯一性。並且,一個區域網里所有電腦的內網IP是互不相同的,但共用一個外網IP。
就像我們前面所說的你所在學校的校名在整個世界上只有一個,但是你學校裡面的A棟大樓3層3號教室只有在你的校園內部才具有唯一性。別的學校也有A棟大樓3層3號教室。你只能跟快遞小哥說請幫我把包裹送到xx大學,而不能說請幫我把包裹送到A棟大樓3層3號教室。
在區域網中,每台電腦都可以自己分配自己的IP,但是這個IP只在區域網中有效。而如果你將電腦連接到互聯網,你的網路提供商的伺服器會為你分配一個IP地址,這個IP地址才是你在外網的IP。兩個IP同時存在,一個對內,一個對外。
(5)獲取發送請求伺服器的ip擴展閱讀
內網和外網之間的通信(埠映射原理)
埠映射是 NAT 的一種,它將外網主機的 IP 地址的一個埠映射到內網中一台機器,提供相應的服務。當用戶訪問該 IP 的這個埠時,伺服器自動將請求映射到對應區域網內部的機器上。
A 電腦的 IP 是區域網 IP(192.168.31.11),這個 IP(192.168.31.11)是從路由器的 lan口分配的。當我們上網路的時候,經過路由器的 wan口,進行相應的IP、埠轉化:192.168.31.11:80 -> 10.221.0.24:8080,所以,從 wan口出去的地址為:10.221.0.24:8080。
最後,經過運營商,運營商那邊會做相應的埠映射(而且是動態埠映射),子網 IP(10.221.0.24:8080)轉化為公網 IP(128.0.0.1:8888),通過這個公網 IP 去訪問網路伺服器。
同理,B 的過程也是一樣。通過這樣的層層埠映射,最終保證地址(IP + 埠)的唯一性。A 和 B 訪問網路伺服器,盡管它們的區域網 IP 是一樣的,但是最終它們訪問網路的地址(IP + 埠)是唯一的,所以,網路伺服器回復時,原路返回時能夠區分到底給誰回。
Ⅵ 區域網內怎樣獲得自動分配的IP地址
在區域網中,採用DHCP自動獲取的方式,網內的電腦只能隨機的獲取到某一IP地址,如何才能獲取到某已指定的IP地址。
工具/原料
電腦
方法/步驟
比如在區域網中我想獲得的IP地址為:192.168.1.88。
步驟一:首先要在你的電腦中將其設置為固定IP地址。電腦桌面——網上鄰居(滑鼠右鍵屬性)——雙擊本地連接
然後選擇常規——屬性——雙擊Internet協議(TCP/IP)
然後選擇「使用下面的IP地址」和選擇「使用下面的DNS伺服器地址」,在IP地址上如圖輸上192.168.1.88,子網掩碼255.255.255.0 網關192.168.1.1後,DNS到網路上搜索DNS伺服器後隨便選兩個就行,或者不填,然後點擊確定。
已將其設置為固定後,再將其改為自動獲取,電腦就會自動獲取到你剛輸入過的固定IP地址。
步驟二:電腦桌面——網上鄰居(滑鼠右鍵屬性)——雙擊本地連接——常規——屬性——雙擊Internet協議(TCP/IP)——然後選擇「自動獲取IP地址」和選擇「自動獲取DNS伺服器地址」,就會獲取到你前面所輸入的IP地址。(如果一次不行可多試兩次,或重啟路由器的DHCP服務)