php外網ip
A. php判斷IP是中國IP還是外國IP
//返回ip所在的區域外國ip精確到國名
functiongetcposition($ip){
try{
$res1=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1=json_decode($res1,true);
if($res1["code"]==0){
return$res1['data']["country"].$res1['data']["region"].$res1['data']["city"]."_".$res1['data']["isp"];
}else{
return"未能獲取";
}
}catch(Exception$e){
return"未能獲取";
}
}
B. PHP如何獲取外網IP地址,類似於百度查詢到的IP,網上的方法,查詢到的都是區域網(內網)的IP,
發一個函數給你.
/**
*獲取客戶端IP地址
*@paraminteger$type返回類型0返回IP地址1返回IPV4地址數字
*@paramboolean$adv是否進行高級模式獲取(有可能被偽裝)
*@returnmixed
*/
functionget_client_ip($type=0,$adv=false){
$type=$type?1:0;
static$ip=NULL;
if($ip!==NULL)return$ip[$type];
if($adv){
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$arr=explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$pos=array_search('unknown',$arr);
if(false!==$pos)unset($arr[$pos]);
$ip=trim($arr[0]);
}elseif(isset($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}elseif(isset($_SERVER['REMOTE_ADDR'])){
$ip=$_SERVER['REMOTE_ADDR'];
}
}elseif(isset($_SERVER['REMOTE_ADDR'])){
$ip=$_SERVER['REMOTE_ADDR'];
}
//IP地址合法驗證
$long=sprintf("%u",ip2long($ip));
$ip=$long?array($ip,$long):array('0.0.0.0',0);
return$ip[$type];
}
如果是本地測試的話,獲取到的是127.0.0.1
C. 本機可以訪問,外網IP無法訪問本機的web工程
在探討為什麼內網IP能訪問本機web工程,而外網IP無法訪問時,我們首先需要理解web伺服器的運行環境與網路配置。
通常,web工程的運行語言可以是多種,包括但不限於Java、Python、Ruby、PHP或Node.js等。語言選擇取決於項目需求、開發團隊熟悉程度以及性能考量。
至於提到的IIS與JAVA,它們代表了兩種不同的web伺服器運行環境。IIS主要用於Windows操作系統,支持多種編程語言,如ASP.NET、PHP等;而Java則通常與開源的Apache Tomcat或Jetty伺服器關聯,提供高性能的web應用運行環境。因此,使用IIS或Java開發的web工程在理論上都能運行。
訪問問題的關鍵在於網路配置。在區域網(內網)環境中,不同設備間的通信通常更為順暢。內網IP能夠訪問本機web工程,是因為它們位於同一網路中,數據包可以通過區域網直接傳輸。
然而,當嘗試從外網訪問時,問題可能出在防火牆、路由規則或NAT(網路地址轉換)設置上。網路設備(如路由器)可能阻止外部IP直接訪問內網設備,除非特別配置了埠映射或NAT轉發規則。
解決方法包括檢查防火牆設置,確保沒有阻止特定埠(如80或443)的通信;調整路由器或NAT設置,允許外部IP通過特定埠訪問內網設備;或者使用公共IP服務(如DDNS),通過域名而非直接IP地址訪問。
綜上所述,內網IP能訪問本機web工程,而外網IP無法訪問的問題,通常與網路配置而非語言或伺服器選擇有關。合理調整網路設置,確保埠開放和路由規則正確配置,可以解決訪問問題。
D. 安裝PHPnow環境後,我打開http://127.0.0.1/結果不顯示此伺服器互聯網IP!請問是怎麼回事
需要用戶名和密碼
的原因原因是你的網站根目錄許可權問題。
你要把本機建立的伺服器綁定到你的域名可以,但是有很多限制性因素。
1. 如果是有獨立的外網IP並且是靜態的話直接將域名解析到你的IP就好了。
2. 如果是普通寬頻,那麼你的IP是動態的,直接解析就不行了,因為你的IP會變的,只有通過動態域名解析(例如花生殼等),然後把域名用CNAME記錄解析到動態域名上。
3. 如果是小區寬頻,不但要做第二種情況的事還要找小區寬頻讓他們在路由器上把80埠映射到你的機器上。
樓主還有什麼不明白給我留言。
E. php如何獲取伺服器外網的ip
function real_server_ip(){
static $serverip = NULL;
if ($serverip !== NULL){
return $serverip;
}
if (isset($_SERVER)){
if (isset($_SERVER['SERVER_ADDR'])){
$serverip = $_SERVER['SERVER_ADDR'];
}
else{
$serverip = '0.0.0.0';
}
}
else{
$serverip = getenv('SERVER_ADDR');
}
return $serverip;
}