PHP는 IP 주소를 기반으로 도시를 가져옵니다. php는 사용자 IP를 가져옵니다. php ip php는 서버 i를 가져옵니다.

WBOY
풀어 주다: 2016-07-29 08:50:43
원래의
1096명이 탐색했습니다.

이런 수요가 있을 경우 사용자의 IP 주소를 기반으로 사용자가 거주하는 도시를 찾아야 합니다.
이 글은 다큐멘터리 글이고 논리가 없습니다. 그런 필요가 있는 친구들은 직접 복사해서 사용할 수 있습니다. 세부 사항을 살펴볼 필요 없이 코드로 직접 이동하세요.

<code><span><?php</span>
header(<span>'Content-Type:text/html;Charset=utf-8'</span>);
<span><span>function</span><span>GetIp</span><span>()</span>{</span><span>$realip</span> = <span>''</span>;
    <span>$unknown</span> = <span>'unknown'</span>;
    <span>if</span> (<span>isset</span>(<span>$_SERVER</span>)){
        <span>if</span>(<span>isset</span>(<span>$_SERVER</span>[<span>'HTTP_X_FORWARDED_FOR'</span>]) && !<span>empty</span>(<span>$_SERVER</span>[<span>'HTTP_X_FORWARDED_FOR'</span>]) && strcasecmp(<span>$_SERVER</span>[<span>'HTTP_X_FORWARDED_FOR'</span>], <span>$unknown</span>)){
            <span>$arr</span> = explode(<span>','</span>, <span>$_SERVER</span>[<span>'HTTP_X_FORWARDED_FOR'</span>]);
            <span>foreach</span>(<span>$arr</span><span>as</span><span>$ip</span>){
                <span>$ip</span> = trim(<span>$ip</span>);
                <span>if</span> (<span>$ip</span> != <span>'unknown'</span>){
                    <span>$realip</span> = <span>$ip</span>;
                    <span>break</span>;
                }
            }
        }<span>else</span><span>if</span>(<span>isset</span>(<span>$_SERVER</span>[<span>'HTTP_CLIENT_IP'</span>]) && !<span>empty</span>(<span>$_SERVER</span>[<span>'HTTP_CLIENT_IP'</span>]) && strcasecmp(<span>$_SERVER</span>[<span>'HTTP_CLIENT_IP'</span>], <span>$unknown</span>)){
            <span>$realip</span> = <span>$_SERVER</span>[<span>'HTTP_CLIENT_IP'</span>];
        }<span>else</span><span>if</span>(<span>isset</span>(<span>$_SERVER</span>[<span>'REMOTE_ADDR'</span>]) && !<span>empty</span>(<span>$_SERVER</span>[<span>'REMOTE_ADDR'</span>]) && strcasecmp(<span>$_SERVER</span>[<span>'REMOTE_ADDR'</span>], <span>$unknown</span>)){
            <span>$realip</span> = <span>$_SERVER</span>[<span>'REMOTE_ADDR'</span>];
        }<span>else</span>{
            <span>$realip</span> = <span>$unknown</span>;
        }
    }<span>else</span>{
        <span>if</span>(getenv(<span>'HTTP_X_FORWARDED_FOR'</span>) && strcasecmp(getenv(<span>'HTTP_X_FORWARDED_FOR'</span>), <span>$unknown</span>)){
            <span>$realip</span> = getenv(<span>"HTTP_X_FORWARDED_FOR"</span>);
        }<span>else</span><span>if</span>(getenv(<span>'HTTP_CLIENT_IP'</span>) && strcasecmp(getenv(<span>'HTTP_CLIENT_IP'</span>), <span>$unknown</span>)){
            <span>$realip</span> = getenv(<span>"HTTP_CLIENT_IP"</span>);
        }<span>else</span><span>if</span>(getenv(<span>'REMOTE_ADDR'</span>) && strcasecmp(getenv(<span>'REMOTE_ADDR'</span>), <span>$unknown</span>)){
            <span>$realip</span> = getenv(<span>"REMOTE_ADDR"</span>);
        }<span>else</span>{
            <span>$realip</span> = <span>$unknown</span>;
        }
    }
    <span>$realip</span> = preg_match(<span>"/[\d\.]{7,15}/"</span>, <span>$realip</span>, <span>$matches</span>) ? <span>$matches</span>[<span>0</span>] : <span>$unknown</span>;
    <span>return</span><span>$realip</span>;
}

<span><span>function</span><span>GetIpLookup</span><span>(<span>$ip</span> = <span>''</span>)</span>{</span><span>if</span>(<span>empty</span>(<span>$ip</span>)){
        <span>$ip</span> = GetIp();
    }
    <span>$res</span> = @file_get_contents(<span>'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip='</span> . <span>$ip</span>);
    <span>if</span>(<span>empty</span>(<span>$res</span>)){ <span>return</span><span>false</span>; }
    <span>$jsonMatches</span> = <span>array</span>();
    preg_match(<span>'#\{.+?\}#'</span>, <span>$res</span>, <span>$jsonMatches</span>);
    <span>if</span>(!<span>isset</span>(<span>$jsonMatches</span>[<span>0</span>])){ <span>return</span><span>false</span>; }
    <span>$json</span> = json_decode(<span>$jsonMatches</span>[<span>0</span>], <span>true</span>);
    <span>if</span>(<span>isset</span>(<span>$json</span>[<span>'ret'</span>]) && <span>$json</span>[<span>'ret'</span>] == <span>1</span>){
        <span>$json</span>[<span>'ip'</span>] = <span>$ip</span>;
        <span>unset</span>(<span>$json</span>[<span>'ret'</span>]);
    }<span>else</span>{
        <span>return</span><span>false</span>;
    }
    <span>return</span><span>$json</span>;
}


<span>$ipInfos</span> = GetIpLookup(<span>'123.125.114.144'</span>); <span>//baidu.com IP地址</span>
var_dump(<span>$ipInfos</span>);</code>
로그인 후 복사

Sina의 오픈 API를 사용해도 실행 속도는 여전히 매우 좋습니다. 이 글은 CSDN에서 발췌한 글입니다. 재인쇄시 출처를 꼭 밝혀주세요! http://blog.csdn.net/liruxing1715/article/details/28238483

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 IP 주소와 PHP 내용을 포함하여 IP 주소를 기반으로 도시를 얻는 PHP를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿