Hướng dẫn get address from ip address in php - lấy địa chỉ từ địa chỉ ip trong php

Sau đây là phiên bản sửa đổi của đoạn trích tôi thấy sử dụng http://ipinfodb.com/ip_locator.php để lấy thông tin của nó. Hãy nhớ rằng, bạn cũng có thể đăng ký khóa API với họ và sử dụng API trực tiếp để nhận thông tin được cung cấp khi bạn thấy phù hợp.

Đoạn trích

function detect_location($ip=NULL, $asArray=FALSE) {
    if (empty($ip)) {
        if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; }
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; }
        else { $ip = $_SERVER['REMOTE_ADDR']; }
    }
    elseif (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost') {
        $ip = '8.8.8.8';
    }

    $url = 'http://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip);
    $i = 0; $content; $curl_info;

    while (empty($content) && $i < 5) {
        $ch = curl_init();
        $curl_opt = array(
            CURLOPT_FOLLOWLOCATION => 1,
            CURLOPT_HEADER => 0,
            CURLOPT_RETURNTRANSFER  => 1,
            CURLOPT_URL => $url,
            CURLOPT_TIMEOUT => 1,
            CURLOPT_REFERER => 'http://' . $_SERVER['HTTP_HOST'],
        );
        if (isset($_SERVER['HTTP_USER_AGENT'])) $curl_opt[CURLOPT_USERAGENT] = $_SERVER['HTTP_USER_AGENT'];
        curl_setopt_array($ch, $curl_opt);
        $content = curl_exec($ch);
        if (!is_null($curl_info)) $curl_info = curl_getinfo($ch);
        curl_close($ch);
    }

    $araResp = array();
    if (preg_match('{
  • City : ([^<]*)
  • }i', $content, $regs)) $araResp['city'] = trim($regs[1]); if (preg_match('{
  • State/Province : ([^<]*)
  • }i', $content, $regs)) $araResp['state'] = trim($regs[1]); if (preg_match('{
  • Country : ([^<]*)}i', $content, $regs)) $araResp['country'] = trim($regs[1]); if (preg_match('{
  • Zip or postal code : ([^<]*)
  • }i', $content, $regs)) $araResp['zip'] = trim($regs[1]); if (preg_match('{
  • Latitude : ([^<]*)
  • }i', $content, $regs)) $araResp['latitude'] = trim($regs[1]); if (preg_match('{
  • Longitude : ([^<]*)
  • }i', $content, $regs)) $araResp['longitude'] = trim($regs[1]); if (preg_match('{
  • Timezone : ([^<]*)
  • }i', $content, $regs)) $araResp['timezone'] = trim($regs[1]); if (preg_match('{
  • Hostname : ([^<]*)
  • }i', $content, $regs)) $araResp['hostname'] = trim($regs[1]); $strResp = ($araResp['city'] != '' && $araResp['state'] != '') ? ($araResp['city'] . ', ' . $araResp['state']) : 'UNKNOWN'; return $asArray ? $araResp : $strResp; }

    Để sử dụng

    detect_location();
    //  returns "CITY, STATE" based on user IP
    
    detect_location('xxx.xxx.xxx.xxx');
    //  returns "CITY, STATE" based on IP you provide
    
    detect_location(NULL, TRUE);    //   based on user IP
    //  returns array(8) { ["city"] => "CITY", ["state"] => "STATE", ["country"] => "US", ["zip"] => "xxxxx", ["latitude"] => "xx.xxxxxx", ["longitude"] => "-xx.xxxxxx", ["timezone"] => "-07:00", ["hostname"] => "xx-xx-xx-xx.host.name.net" }
    
    detect_location('xxx.xxx.xxx.xxx', TRUE);   //   based on IP you provide
    //  returns array(8) { ["city"] => "CITY", ["state"] => "STATE", ["country"] => "US", ["zip"] => "xxxxx", ["latitude"] => "xx.xxxxxx", ["longitude"] => "-xx.xxxxxx", ["timezone"] => "-07:00", ["hostname"] => "xx-xx-xx-xx.host.name.net" }
    

    Nhiều lần chúng tôi cần lấy địa chỉ IP của khách truy cập cho các mục đích khác nhau. Rất dễ dàng để thu thập địa chỉ IP trong PHP. PHP cung cấp biến PHP $ _Server để có được địa chỉ IP người dùng một cách dễ dàng. Chúng tôi có thể theo dõi các hoạt động của khách truy cập trên trang web cho mục đích bảo mật hoặc chúng tôi có thể biết rằng ai sử dụng trang web của tôi và nhiều hơn nữa.$_SERVER variable to get the user IP address easily. We can track the activities of the visitor on the website for the security purpose, or we can know that who uses my website and many more.

    Cách đơn giản nhất để thu thập địa chỉ IP của khách truy cập trong PHP là Remote_addr. Vượt qua 'Remote_addr' trong biến PHP $ _Server. Nó sẽ trả về địa chỉ IP của khách truy cập hiện đang xem trang web.REMOTE_ADDR. Pass the 'REMOTE_ADDR' in PHP $_SERVER variable. It will return the IP address of the visitor who is currently viewing the webpage.

    Lưu ý: Chúng tôi có thể hiển thị địa chỉ IP này trên trang web và thậm chí cũng có thể lưu trữ trong cơ sở dữ liệu cho nhiều mục đích khác như - để bảo mật, chuyển hướng khách truy cập đến một trang web khác, chặn/cấm khách truy cập.

    Nhận địa chỉ IP của trang web

    $ _Server ['remote_addr'] - Nó trả về địa chỉ IP của người dùng hiện đang truy cập trang web. - It returns the IP address of the user currently visiting the webpage.

    Ví dụ

    Đầu ra

    Nhưng đôi khi Remote_addr không trả về địa chỉ IP của máy khách và lý do chính đằng sau là sử dụng proxy. Trong loại tình huống như vậy, chúng tôi sẽ thử một cách khác để có được địa chỉ IP thực sự của người dùng trong PHP.

    Đầu ra

    Flowchart:

    Nhưng đôi khi Remote_addr không trả về địa chỉ IP của máy khách và lý do chính đằng sau là sử dụng proxy. Trong loại tình huống như vậy, chúng tôi sẽ thử một cách khác để có được địa chỉ IP thực sự của người dùng trong PHP.

    Hướng dẫn get address from ip address in php - lấy địa chỉ từ địa chỉ ip trong php

    Nhận địa chỉ IP của trang web

    $ _Server ['remote_addr'] - Nó trả về địa chỉ IP của người dùng hiện đang truy cập trang web.gethostbyname() function.

    Ví dụ

    Đầu ra

    IP Address of Google is - 172.217.166.4
    IP Address of javaTpoint is - 95.216.57.234
    


    Làm cách nào để nhận địa chỉ IP trong PHP?

    Sử dụng hàm getenv (): Để có được địa chỉ IP, chúng tôi sử dụng lệnh getenv (từ remote_addr,).Hàm getenv () trong PHP được sử dụng để truy xuất các giá trị của biến môi trường trong PHP.Nó được sử dụng để trả về giá trị của một biến môi trường cụ thể.getenv(“REMOTE_ADDR”) command. The getenv() function in PHP is used for retrieval of values of an environment variable in PHP. It is used to return the value of a specific environment variable.

    Làm thế nào có được LAT dài từ địa chỉ IP trong PHP?

    hàm get_client_ip () {$ ipaddress = '';if ($ _server ['http_client_ip']) $ ipaddress = $ _server ['http_client_ip'];khác if ($ _ server ['http_x_foreded_for']) $ ipaddress = $ _server ['http_x_foreded_for'];khác if ($ _ server ['http_x_forededed']) $ ipaddress = $ _server ['http_x_forededed'];khác nếu ($ _ server ['...

    Máy chủ $ _ là gì ['remote_addr'] là gì?

    $ _Server ['remote_addr'] trả về địa chỉ IP từ nơi người dùng đang xem trang hiện tại.Returns the IP address from where the user is viewing the current page.