Php 서버 IP 주소를 식별했습니까 어떻게 해야 합니까?
이 같은 서버의 ip:
$_SERVER['SERVER_ADDR'];
그리고 이 포트의
$_SERVER['SERVER_PORT'];
내가 아니라 내 자신의 ip 주소를 얻는 방법을 찾고 이 페이지를 르렀을 원격 시스템의 연결하든 한 날.
Windows 컴퓨터의 이 작동하지 않습니다.
그러나 누군가가 검색을 경우 뭐하러요 찾고 있었어요.
#! /usr/bin/php
<?php
$my_current_ip=exec("ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'");
echo $my_current_ip;
Https://stackoverflow.com/questions/13322485/how-to-i-get-the-primary-ip-address-of-the-local-machine-on-linux-and-os-x (뻔뻔하게 발췌)
몇 가지 시나리오가 거짓하였으니 '$ host = 게서스트나미 (); gethostbyname ip = $ ($ host), 'won& # 39, t # 39 에 의존하고 있기 때문에 정확한 값을 반품하십시오 it& 모두에서 DNS (통칭 내부적으로 구성된 또는 외부 레코드는유지합니다) 과 server& server& # 39 의 IP 주소와 호스트 # 39 의 추정하는 데, 이 설정. 이 두 가지 단계가 잠재적으로 오류가 있습니다. 예를 들어, 서버의 호스트 이름을 포맷되었습니다 같은 도메인 이름 (즉, 'hostname = yahoo.com') 을 (적어도 내 php5.4/centos6 setup) ',' Yahoo.com & # 39 의 주소를 찾는 gethostbyname 건너뛰려면 직선입니다 아닌 로컬 server& # 39 의.
또한, '폭포' 퍼블릭 DNS 레코드를 gethostbyname 때문에 다시 테스트 서버를 통해 비게시 또는 잘못된 퍼블릭 DNS 레코드 (예를 들어, you& # 39, re 액세스하면 서버에서 '로컬호스트' 또는 'IP 주소 또는 경우 해당 지역', 're 재정의을 퍼블릭 DNS you& # 39 를 사용하여 호스트 파일) 을 you& # 39, ll 물러서요 아니오 IP 주소 (또 그냥 반품하십시오 hostname) 또는 it in the public DNS 레코드를 주소가 잘못 반환되므로 더욱 악화시키고 있는 경우 또는 there& # 39 의 경우, 해당 도메인의 와일드카드.
상황에 따라 이 같은 일이 3 외곽진입 수행여 시도해보십시오 수도 있습니다.
$external_ip = exec('curl http://ipecho.net/plain; echo');
이로 인해 자신의 허물을 (의존하고 특정 타사 사이트 및 라우팅하는 아웃바운드 연결을 통해 네트워크 설정을 할 수 있다는 다른 호스트 또는 가상본) 와 같은 '이' gethostbyname 속도가 느려질 수 있습니다. # 39 m 장난하는거아니고 i& 가장 많이 있지만, 어떤 교훈을 시행하십시오 외곽진입 적립율은 수정하십시오 확신할 수 있는 그 마음이 특정 시나리오에서와 / 구성은 잘못 출력입니다 이러한 모든 방식. 그래서 가능한 경우, 반환 값을 사용하여 enable-volume-set 외곽진입 you& # 39 는 re 기대할 수 있습니다.
이게 한국 표시됨과 위의 예 걱정 없이 사용할 수 있습니다 (curl 서버에 설치되어.
<?php
// create a new cURL resource
$ch = curl_init ();
// set URL and other appropriate options
curl_setopt ($ch, CURLOPT_URL, "http://ipecho.net/plain");
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
// grab URL and pass it to the browser
$ip = curl_exec ($ch);
echo "The public ip for this server is: $ip";
// close cURL resource, and free up system resources
curl_close ($ch);
?>
Php bash 쉘로 사용하는 경우 사용할 수 있습니다.
$server_name=exec('hostname');
[] '$ _SERVER SERVER_ADDR 때문에', 'HTTP_HOST' 와 'SERVER_NAME' 설정되어 있지 않습니다.
그냥 간단한 $ _SERVER 창조하 스크립트입니다 그것을들추어 다시 [& # 39, REMOTE_ADDR& # 39;] 및 $ _SERVER [# 39, & # 39 SERVER_ADDR&;] # 39 에서 변경할 수 있도록, 모든 IIS don& 별로 없는 편이다. 그냥 이 텍스트 파일을 붙여넣습니다 php 에 포함되는 모든 호출이네요
/** IIS IP Check **/
if(!$_SERVER['SERVER_ADDR']){ $_SERVER['SERVER_ADDR'] = $_SERVER['LOCAL_ADDR']; }
if(!$_SERVER['REMOTE_ADDR']){ $_SERVER['REMOTE_ADDR'] = $_SERVER['LOCAL_ADDR']; }