2013-08-04 47 views
6

Tôi muốn đặt cùng một tập lệnh PHP để giải quyết tên thành phố (không cần gì khác) với độ phân giải tốt chỉ dành cho một quốc gia (IRAN). Vì tôi phải truy vấn DB nhiều lần, tốt hơn là nên xem qua phiên bản cục bộ có thể tải xuống. Tôi đã đọc hầu hết các bài viết trên stackoverflow và kể từ bây giờ tôi đã thử nghiệm sau đây:Địa chỉ cấp thành phố đáng tin cậy Geo-IP, cơ sở dữ liệu cục bộ miễn phí

  • GeoIP City từ MaxMind âm thanh tốt, nhưng không phải là miễn phí.
  • GeoIP từ maxmind, có độ chính xác thấp (khoảng 50-60%)
  • ip2country.net có cơ sở dữ liệu IP-2-City nhưng không miễn phí và không giải quyết tên thành phố cho Iran.
  • Tôi cũng đã thử số DB#.Lite từ ipinfodb.com có ​​API here mà không thành công. Vấn đề là, nó không phát hiện nhiều tên thành phố.
  • Tôi cũng đã thử hostip.info API, nhưng dường như quá chậm.
  • free php class với DB địa phương chỉ giải quyết tên quốc gia.
  • Tôi không biết nếu có cơ hội, sử dụng Piwik với this GeoIP plugin. Nó sẽ được đánh giá cao để có ý tưởng nếu ai đó biết về nó.
  • ipinfo.io là một dịch vụ khác không giải quyết chính xác tên thành phố.
  • Tôi không biết liệu có cách nào để sử dụng Google Analytics để giải quyết tên thành phố hay không, vì tôi nghĩ rằng google sẽ tốt hơn bất kỳ dịch vụ nào khác liên quan đến các quốc gia như Iran.

Bất kỳ ý tưởng hay nào cũng sẽ thực sự được đánh giá cao.

+1

Bạn đã thử https://developers.google.com/fusiontables/ chưa? Bạn cũng có thể ghim dữ liệu từ https://en.wikipedia.org/wiki/Category:Cities_in_Iran –

Trả lời

4

Đây là một điều khó khăn và khó thực hiện một cách đáng tin cậy. Tôi đã cho nó một đi trong quá khứ và nó đã đi một cái gì đó như thế này

có được trả tiền cho các dịch vụ mà có thể làm được điều này thực sự nhanh chóng cho bạn. Nó có thể đưa bạn lứa tuổi để có được một cái gì đó làm việc mà vẫn còn không đáng tin cậy bởi vì bạn chỉ đơn giản là không có dữ liệu. Tôi sẽ nghiêm túc xem xét http://www.maxmind.com/en/city_per - trừ khi tất nhiên đây là một dự án hoàn toàn không có thương mại và $ là không có không.

Nếu bạn có thể nhận được lat và dài từ bảng IP, ngay cả khi không có dữ liệu thành phố thì bạn có thể muốn sử dụng một cái gì đó như thế này để kiểm tra thành phố gần nhất của Javascript là một optio n - Finding nearest listed (array?) city from known location.

Trình duyệt Chia sẻ vị trí có tính năng gì?

+0

Cảm ơn câu trả lời của bạn. Tôi không nghĩ rằng "trình duyệt Chia sẻ vị trí tính năng" được hỗ trợ rộng rãi bởi tất cả các browsrs lớn. Phải không? – Trix

+0

Không. Tôi chỉ đang ném nó ra có –

+0

Chúng tôi đang sử dụng IP2Location LITE miễn phí và hỗ trợ mã ZIP. –

0

Nếu giải pháp dựa trên trình duyệt hoạt động cho trường hợp sử dụng của bạn, bạn có thể muốn xem MaxMind's GeoIP2 JavaScript API. Trước tiên, nó cố gắng xác định vị trí người dùng bằng cách sử dụng vị trí địa lý HTML5 và nếu điều đó không thành công hoặc không chính xác, nó sẽ chuyển thành dữ liệu Thành phố GeoIP2 của MaxMind (không phải GeoLite). MaxMind cung cấp phiên bản phân bổ miễn phí.

0

Đôi khi, chúng tôi cần sử dụng cơ sở dữ liệu Geo-IP cục bộ thay vì dịch vụ web cho các mục đích cụ thể. Đây là trải nghiệm của tôi: Tôi đã tải xuống biểu mẫu cơ sở dữ liệu https://db-ip.com. Tôi đã tìm kiếm rất nhiều và cuối cùng tôi thấy điều này đáng tin cậy hơn. nhưng vẫn còn hai vấn đề nữa:

  • 1-Cơ sở dữ liệu "Địa chỉ IP thành phố" quá lớn để tải lên cơ sở dữ liệu MYSQL khi lưu trữ khi vượt quá giới hạn thời gian.
  • 2-Cơ sở dữ liệu dựa trên so sánh địa chỉ IP của http://lite.ip2location.com Cơ sở dữ liệu là cơ sở của các số IP.

Vì vậy, tôi đã phát triển một ứng dụng .NET đơn giản để giải quyết những vấn đề đó. Bạn có thể tải xuống giải pháp từ đây: https://github.com/atoosi/IP2Location-Database-Luncher

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