2011-01-10 52 views
7

Hỗ trợ API vị trí địa lý của Google hiện được tích hợp vào hầu hết các trình duyệt. Họ làm điều này, một phần, bằng cách gửi cho Google địa chỉ MAC của các điểm truy cập 802.11 gần đó (những điểm có máy ảnh của bạn bị bắt.)Định vị địa lý các điểm truy cập 802.11 theo địa chỉ MAC bằng cách sử dụng API Google Geolocation

Tôi có một số lượng lớn các gói 802.11 được chụp từ các vị trí khác nhau. Tôi đang tìm cách định vị các điểm truy cập 802.11. Giả sử rằng chúng tôi chỉ có địa chỉ mac của chúng. Điều này có thể thực hiện được bằng cách sử dụng API định vị địa lý của Google.

Nguồn rằng tôi đã tìm thấy cho đến nay mà có thể hữu ích về vấn đề này bao gồm:

Đầu tiên có lẽ là đặt cược tốt nhất. Vấn đề là, tôi không chắc chắn làm thế nào để sử dụng ví dụ ở đó và thực sự tạo ra một chương trình cho phép tôi ống trong địa chỉ MAC và đầu ra cặp lat/dài. Tôi cũng không chắc chắn làm thế nào để chạy JavaScript từ một dòng lệnh Unix/MacOS.

Tôi biết rằng điều này là rất nhiều để hỏi, nhưng không ai có bất kỳ đầu mối mà tôi nên bắt đầu? sử dụng dòng

Trả lời

9
<?php 

$mac = $_SERVER['argv'][1]; 


$postData = '{ 
    "version": "1.1.0", 
    "wifi_towers": [{ 
     "mac_address": "' . $mac . '", 
     "ssid": "0", 
     "signal_strength":-72 
    }] 
}'; 

$opts = array(
    'http'=>array(
    'method' => "POST", 
    'header' => 'Content-type: application/x-www-form-urlencoded', 
    'content' => $postData 
) 
); 


$response = file_get_contents(
    'http://www.google.com/loc/json', 
    false, 
    stream_context_create($opts) 
); 

$loc = json_decode($response, true); 

echo $loc['location']['latitude']; 
echo ','; 
echo $loc['location']['longitude']; 

Command:

php geo.php "mac addy here" 
+0

wow. kinh ngạc. Cảm ơn. Sao tôi không thể làm những việc như thế? – vy32

+1

Tôi tin rằng dịch vụ vị trí của Google cũng hỗ trợ https, cho những gì nó đáng giá. – npdoty

+1

Bây giờ tôi thực sự bối rối. Tôi đã thử điều này với một số địa chỉ Ethernet và tất cả đều quay lại: {'city': u'Monterey ',' zip ': u'93940', 'country': u'United States ',' region ' : u'California ',' long ': -121,894676,' đường phố ': u'W Franklin St', 'lat': 36.600237, 'độ chính xác': 43000.0} Điều này không có ý nghĩa với tôi. – vy32

Các vấn đề liên quan