Hướng dẫn how get lat long from ip address in php? - làm thế nào để có được độ dài từ địa chỉ ip trong php?

Tôi sử dụng chức năng này để nhận IP khách hàng nó hoạt động

function get_client_ip() {
    $ipaddress = '';
    if ($_SERVER['HTTP_CLIENT_IP'])
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if($_SERVER['HTTP_X_FORWARDED_FOR'])
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if($_SERVER['HTTP_X_FORWARDED'])
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if($_SERVER['HTTP_FORWARDED_FOR'])
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if($_SERVER['HTTP_FORWARDED'])
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if($_SERVER['REMOTE_ADDR'])
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';

    return $ipaddress; 
}

$ip = get_client_ip();

Nhưng làm thế nào tôi có thể có được vĩ độ và kinh độ bởi phía trước và không phải phía khách hàng?

Hướng dẫn how get lat long from ip address in php? - làm thế nào để có được độ dài từ địa chỉ ip trong php?

Tom Fenech

70.1K12 Huy hiệu vàng99 Huy hiệu bạc133 Huy hiệu đồng12 gold badges99 silver badges133 bronze badges

Đã hỏi ngày 11 tháng 3 năm 2014 lúc 10:52Mar 11, 2014 at 10:52

2

PHP không có hỗ trợ được xây dựng cho điều đó. Bạn có thể sử dụng các thư viện của bên thứ ba như ip2location để lấy kinh độ và vĩ độ từ địa chỉ IP.

Sidenote: Xác định vĩ độ - Kinh độ thông qua địa chỉ IP có thể không lấy thông tin chính xác của bạn. : Determining the latitude - longitude through an IP Address may not fetch you accurate information.

Sử dụng geoplugin.net. Xem nếu điều này phù hợp với bạn.

OUTPUT :

Latitude:180.240601 and Longitude:12.9819

Đã trả lời ngày 11 tháng 3 năm 2014 lúc 10:53Mar 11, 2014 at 10:53

Hướng dẫn how get lat long from ip address in php? - làm thế nào để có được độ dài từ địa chỉ ip trong php?

10

Tùy chọn tốt nhất từ ​​php.net cũng là nguồn mở: Geo IP

Bạn có thể cài đặt nó bằng các bước sau. Được đưa ra trên liên kết tôi đã cung cấp:

Chạy các lệnh này trong thiết bị đầu cuối.

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
sudo mkdir -v /usr/share/GeoIP
sudo mv -v GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

sudo apt-get install php5-geoip

Hy vọng nó giúp!!

Hướng dẫn how get lat long from ip address in php? - làm thế nào để có được độ dài từ địa chỉ ip trong php?

Amal Murali

74K18 Huy hiệu vàng126 Huy hiệu bạc145 Huy hiệu Đồng18 gold badges126 silver badges145 bronze badges

Đã trả lời ngày 11 tháng 3 năm 2014 lúc 11:00Mar 11, 2014 at 11:00

Hướng dẫn how get lat long from ip address in php? - làm thế nào để có được độ dài từ địa chỉ ip trong php?

ثمان غمان غعثمان غني

2.7164 Huy hiệu vàng 50 Huy hiệu bạc79 Huy hiệu Đồng4 gold badges50 silver badges79 bronze badges

6

Bạn nên xem xét nhận vị trí chính xác của người dùng từ phía máy khách bằng cách sử dụng API JavaScript navigator.geolocation. Ưu điểm của việc sử dụng điều này là, nó sẽ chính xác.

Vấn đề với IP cho GEO là, không có gì đảm bảo rằng thông tin sẽ chính xác. Nó phụ thuộc vào cách cập nhật dữ liệu.

Mặt khác, API JavaScript trực tiếp lấy địa lý dựa trên GPS hoặc địa chỉ mạng (tùy theo điều kiện chính xác). Nhưng người dùng sẽ phải cho phép truy cập vào GPS của mình.

Bạn có thể sử dụng JavaScript (nếu người dùng cấp phép) hoặc quay lại IP để chuyển đổi địa lý

Cách sử dụng

 if (navigator.geolocation && navigator.geolocation.getCurrentPosition) {
      navigator.geolocation.getCurrentPosition(function(position) {
          // save location by sending to server
      }, function() { alert("Couldn't get your position!"); });
 }

Đã trả lời ngày 11 tháng 3 năm 2014 lúc 11:08Mar 11, 2014 at 11:08

Hướng dẫn how get lat long from ip address in php? - làm thế nào để có được độ dài từ địa chỉ ip trong php?

SajithnairairsajithnairSajithNair

3,8311 huy hiệu vàng16 Huy hiệu bạc23 Huy hiệu đồng1 gold badge16 silver badges23 bronze badges

2

Đối với một giải pháp nhanh chóng, sao chép và dán, tôi đã viết mã để hoàn thành nhiệm vụ này.

Tôi sử dụng chức năng này:

    function getUserIP()
    {
        $client  = @$_SERVER['HTTP_CLIENT_IP'];
        $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
        $remote  = $_SERVER['REMOTE_ADDR'];

        if(filter_var($client, FILTER_VALIDATE_IP))
        {
            $ip = $client;
        }
        elseif(filter_var($forward, FILTER_VALIDATE_IP))
        {
            $ip = $forward;
        }
        else
        {
            $ip = $remote;
        }

        return $ip;
    }

    $ipAddr = getUserIP();

    $geoIP  = json_decode(file_get_contents("http://freegeoip.net/json/$ipAddr"), true);

    echo 'lat: ' . $geoIP['latitude'] . '
'; echo 'long: ' . $geoIP['longitude'];

Outputs:

34.0731
118.3994

Nó sử dụng API (miễn phí) freegeoip.net mà tôi đã tìm thấy cực kỳ nhanh với cơ sở dữ liệu toàn diện. Miễn phí, nó có giới hạn 10000 yêu cầu mỗi giờ (chỉ dưới 3 mỗi giây), điều này đủ cho hầu hết các nhu cầu của các dự án.

Đã trả lời ngày 11 tháng 3 năm 2014 lúc 11:06Mar 11, 2014 at 11:06

Hướng dẫn how get lat long from ip address in php? - làm thế nào để có được độ dài từ địa chỉ ip trong php?

VerbumsapientiverbumsapientiverbumSapienti

9561 Huy hiệu vàng9 Huy hiệu bạc22 Huy hiệu đồng1 gold badge9 silver badges22 bronze badges

5

Làm thế nào tôi có thể nhận được vĩ độ và kinh độ từ địa chỉ trong PHP?

'& cảm biến = sai'; $ json = @file_get_contents ($ url); $ data = json_decode ($ json); $ status = $ data-> trạng thái; if ($ status == "ok") trả về $ data-> kết quả [0]-> formated_address; khác trả về sai; } $ lat = 26.754347; // Latitude $ lng = 81.001640; // Kinh độ $ địa chỉ = getAddress ($ lat, $ lng); if ($ địa chỉ) {echo $ địa chỉ; } ...

Có thể nhận được vị trí từ địa chỉ IP không?

Địa chỉ IP tiết lộ định vị địa lý của bạn, nhưng không phải là vị trí chính xác của bạn như địa chỉ nhà. Địa chỉ IP cũng sẽ không bao giờ tiết lộ tên, số điện thoại hoặc thông tin cá nhân chính xác khác của bạn.. IP addresses will also never reveal your name, phone number, or other precise personal information.

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.

Làm cách nào để tìm thông tin trên một địa chỉ IP?

Làm thế nào người dùng có thể được truy tìm từ địa chỉ IP của họ ?..
Xác định ai sở hữu mạng.....
Thực hiện "Tra cứu ngược."Điều này chuyển đổi địa chỉ IP thành tên máy tính [Ví dụ: Chuyển đổi 206.156.....
Tiến hành một traceroute.....
Xem lại thông tin đăng ký tên miền thông qua cơ sở dữ liệu "WHOIS" ..