2012-12-10 90 views
10

Có cách nào để sử dụng bất kỳ API Google nào để có được Vị trí địa lý IP của Người dùng của tôi trong thời gian trực tiếp không?API vị trí địa lý IP của Google

Tôi nghĩ rằng nó sẽ sử dụng Cơ sở dữ liệu Analytics và là người duy nhất theo dõi người dùng của tôi ở cấp thành phố thực sự là chính xác (Bất kỳ IP-Location-API nào khác mà tôi có thể kiểm tra đều hiển thị địa chỉ IP của tôi gần 200 km vị trí thực sự của tôi. Google hiển thị 200m (!)!)

Tôi muốn biết Vị trí của Người dùng của tôi (Ở phía Trình duyệt và truyền nó đến Máy chủ của tôi hoặc ở phía Máy chủ) để phục vụ nội dung phụ thuộc vào Thành phố. Nhưng tôi không muốn làm cho người dùng của mình trở thành một trong những cửa sổ bật lên phiền toái này yêu cầu sử dụng GPS, vì vậy tôi muốn sử dụng địa chỉ IP.

Mọi đề xuất?

+0

Tôi đã đăng câu trả lời [ở đây] (http://stackoverflow.com/a/40049684/426790) sử dụng [API vị trí địa lý của Google Maps] (https://developers.google.com/maps/documentation/ vị trí địa lý/giới thiệu). –

Trả lời

10

Nếu bạn không muốn sử dụng HTML5 style client-enabled GeoIP information, bạn sẽ cần một cơ sở dữ liệu GeoIP như MaxMind's GeoIP Lite database, miễn phí và hoạt động tốt với 99% trường hợp sử dụng. Bất kỳ dịch vụ nào khác với thông tin chính xác/chi tiết hơn sẽ khiến bạn tốn nhiều tiền. MaxMind được nhiều người khen ngợi và hoạt động tốt cho nhu cầu của tôi, cá nhân. Nó có thể cung cấp cho bạn thông tin Quốc gia/Vùng/Thành phố/Vĩ độ-Kinh độ-Tọa độ/Lục địa.

+0

Hmm ... Tôi nghĩ tôi có thể sử dụng Dữ liệu của Google theo bất kỳ cách nào. Tôi nghĩ rằng tôi sẽ sử dụng cơ sở dữ liệu IP và cung cấp một nút "Dựa trên vị trí" cho người dùng, cho phép định vị địa lý HTML5. Có một trang thử nghiệm cho MaxMinds GeoIP DB để kiểm tra tính chính xác của IP của tôi không? – keykiller91

+0

Không phải là tôi biết. Cách tốt nhất để kiểm tra nó là tải xuống và thử nó cho chính bạn. – Sherif

+1

Maxmind không phải là miễn phí cũng có một số thỏa thuận cấp phép: ( –

0

Bạn có thể sử dụng API mã hóa địa lý của Google để nhận địa chỉ thực cho một vị trí nhưng các yếu tố đầu vào cần thiết cho API đó là tọa độ kinh độ và vĩ độ.

Ví dụ: http://maps.googleapis.com/maps/api/geocode/json?latlng=43.473,-82.533&sensor=false

Bạn cần phải tìm và IP để API vị trí từ một số nhà cung cấp khác để có được một cấp thành phố hoặc giữ tùy chọn để nhắc nhở họ cấp cho bạn truy cập cho geolocation của họ.

IPInfoDB làm một công việc khá tốt ở tự động thu hẹp vị trí thông qua IP mà không cần sử dụng đầu vào:

http://ipinfodb.com/ip_location_api.php

+0

Không có cách nào! Tôi thực sự đang sử dụng IPInfoDB và người dùng từ Unitymedia (một ISP địa phương) không thể sử dụng dịch vụ dựa trên vị trí, vì họ chỉ đặt tất cả trong một Thành phố (thậm chí không hiển thị trong Google Analytics) – keykiller91

+0

Trường hợp Unitymedia có thể không phải là lỗi của IPinfoDB. Nếu đó là một ISP cụ thể, họ có thể sử dụng Carrier Grade NAT, điều này có nghĩa là mọi người trên toàn khu vực đang sử dụng một nhóm nhỏ các IP, không thể gỡ rối phiên nào là địa chỉ IP. Kiểm tra bộ bài này từ Jason Fesler tại Yahoo: http://meetings.apnic.net/__data/assets/file/0003/38298/fesler_yahoo_2011_post_ipv6_day_20min.pptx.pdf –

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