Php lấy ip máy chủ

Trong bài viết trước, tôi đã giới thiệu cho các bạn cách lấy địa chỉ IP của khách truy cập trang web. Và trong bài viết này, tôi sẽ giúp các bạn lấy thêm thông tin liên quan đến các địa chỉ IP như đất nước, miền, chính độ (kinh độ và vĩ độ)… Với những thông tin này sẽ giúp các bạn đánh giá,

Thông thường sẽ có 2 cách chính để bạn lấy được những thông tin cần thiết từ địa chỉ IP. Đó là dựa vào những trang web có cung cấp sẵn API/dịch vụ để lấy thông tin hoặc tải xuống và truy xuất từ ​​những Cơ sở dữ liệu có sẵn thông tin liên quan đến địa chỉ IP

1, Giới thiệu một số website cung cấp API/dịch vụ lấy thông tin

một, chủ nhà. thông tin

Khi sử dụng API từ trang web này, các bạn sẽ có những lựa chọn sau đây để lấy thông tin

  • get_html. php. Trả về thông tin liên quan dưới định dạng HTML hoặc XML
  • get_json. php. Trả về thông tin với định dạng JSON
  • quốc gia. php. Lấy thông tin đất nước chứa địa chỉ IP
  • flag.php: Lấy quốc kỳ của đất nước chứa địa chỉ IP (thường được dùng trong thẻ )

Và phương thức sử dụng của trang web này là phương thức GET. Có 2 tham số chính thường được sử dụng là

  • ip. Chứa địa chỉ IP
  • Chức vụ. Xác nhận có muốn lấy thông tin tọa độ (kinh độ, vĩ độ) hay không

Một đoạn mã nhỏ mà tôi sử dụng để lấy thông tin như sau

"; // Latitude: 33.0582
echo "Longitude: " . $json_data['lng'] . "
"; // Longitude: -97.5159 ?>

b, thông tin ip. io

Thông tin liên quan đến địa chỉ IP được trang web này cung cấp cho người dùng dưới định dạng JSON. Cách thức lấy thông tin cũng khá dễ dàng

Hai đoạn code dưới đây sẽ được viết bằng PHP và jQuery để các bạn có thêm nhiều sự lựa chọn

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>

and…

// HTML
// jQuery $.get("http://ipinfo.io", function (response) { $("#ip").html("IP: " + response.ip); $("#address").html("Location: " + response.city + ", " + response.region); $("#details").html(JSON.stringify(response, null, 4)); }, "jsonp");

c, freegeoip. mạng lưới

Đây là một trang web cung cấp API Dịch vụ Web (theo kiểu RESTful) miễn phí, mang đến các thông tin liên quan của địa chỉ IP và Tên máy chủ. Dịch vụ web được cung cấp với định dạng chung sau

freegeoip.net/{format}/{ip_or_hostname}

In which,

  • định dạng. là định dạng dữ liệu mà bạn muốn lấy về, có 3 kiểu chính là csv, xml và json
  • ip_or_hostname. is address IP or Hostname that you want tra cứu thông tin

Đây là đoạn mã nhỏ mà tôi sử dụng để lấy thông tin từ trang web này

 12.215.42.19
[country_code] => US
[country_name] => United States
[region_code] =>
[region_name] =>
[city] =>
[zipcode] =>
[latitude] => 38
[longitude] => -97
[metro_code] =>
[areacode] =>
)
?>

Lưu ý. Các bạn chỉ được yêu cầu 10. 000 truy vấn mỗi giờ, nếu vượt quá số lượng quy định thì sẽ nhận được thông báo HTTP 403 (Bị cấm). Ngoài ra, các bạn có thể tải mã nguồn tại đây.

d, ipinfodb. com

Trang web này cung cấp nhiều chức năng liên quan đến địa chỉ IP như dò tìm địa chỉ IP, cung cấp Cơ sở dữ liệu và không thể thiếu API (miễn phí) để truy vấn và lấy thông tin địa chỉ IP

Mục API của trang web này cung cấp khá đầy đủ và chi tiết về các phương thức và cách lấy dữ liệu. Vì là API miễn phí nên họ chỉ cung cấp các phương thức đơn giản, bao gồm 2 phương thức chính và 4 tham số. Các cụ thể như sau

Đánh giá tốt nhất https. //trực tuyếnbellagiocasino. com/sòng bạc

Danh sách API

[table]
API,Độ chính xác,Múi giờ,Tra cứu tên miền
ip-city,City,Yes,Yes
ip-country,Country,No,Yes
[/table]

tham số API

[table]
Tham số,Bắt buộc,Mặc định,Giá trị
khóa,Có,
ip,No,IP máy khách,địa chỉ IP
format,No,raw,”raw, xml, json”
gọi lại .
[/table]

Cách truy vấn như sau

http://api.ipinfodb.com/v3/ip-city/?key=&ip=

hoặc

http://api.ipinfodb.com/v3/ip-country/?key=&ip=

Các bạn cần cung cấp API Key để thực hiện các truy vấn này. Muốn có API Key thì các bạn đăng ký tại đây

Ngoài ra, trang web còn cung cấp 1 PHP Class để lấy dữ liệu (download tại đây). Dưới đây là 1 ví dụ về các chức năng của Class đó

setKey('');
//Get errors and locations
$locations = $ipLite->getCity($_SERVER['REMOTE_ADDR']);
$errors = $ipLite->getError();
//Getting the result
echo "

\n"; echo "First result
\n"; if (!empty($locations) && is_array($locations)) { foreach ($locations as $field => $val) { echo $field . ' : ' . $val . "
\n"; } } echo "

\n"; //Show errors echo "

\n"; echo "Dump of all errors
\n"; if (!empty($errors) && is_array($errors)) { foreach ($errors as $error) { echo var_dump($error) . "

\n"; } } else { echo "No errors" . "
\n"; } echo "

\n"; ?>

Một số ngôn ngữ và mô-đun mà trang web này hỗ trợ thêm

  • Ví dụ Javascript
  • Ví dụ cổ điển ASP
  • Máy khách Java
  • ví dụ hồng ngọc 1
  • ví dụ hồng ngọc 2
  • thư viện Python
  • Mô-đun OSC Commerce
  • mô-đun Drupal
  • mô-đun WordPress
  • Tiện ích mở rộng Joomla (miễn phí phi thương mại)
  • mô-đun eZ Publish CMS
  • Thư viện PHP

Khi tìm hiểu về trang web này, tôi thấy có 1 đoạn mã chia sẻ về cách lấy dữ liệu của trang này. Đoạn mã của tác giả SpYk3HH trên trang Stackoverflow khá đơn giản, sử dụng cURL để lấy kết quả trực tiếp mà không sử dụng API

________số 8

And how to use as after

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" }

e, iptolatlng. com

Các bạn có thể yêu cầu truy cập trang web này để lấy dữ liệu với 3 tham số cơ bản là ip, type và callback. Có 2 kiểu dữ liệu được trả về là JSON và JSONP

Cách sử dụng hiển thị ngay trên trang web nên tôi không cần giới thiệu ở đây nữa

f, plugin địa lý. com

Với trang web này, các bạn có thể sử dụng cú pháp sau lấy dữ liệu do PHP Web Service cung cấp

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>
0

Sau đây là 1 ví dụ sử dụng Web Service trên

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>
1

And results return

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>
2

Trang web cũng cung cấp 1 PHP Class để lấy dữ liệu (tải về). Và đoạn mã sau là ví dụ để sử dụng Lớp PHP này

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>
3

g, mạng lưới. de

Đây là 1 geo-IP-server dùng để kiểm tra và trả về thông tin IP bao gồm đất nước, bang, thành phố…

Các bạn hãy tham khảo đoạn mã sau để lấy dữ liệu

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>
4

And data return

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>
5

2, Giới thiệu một số trang web và dịch vụ cung cấp Cơ sở dữ liệu để tra cứu thông tin

một, tối đa. com

Trang web này cung cấp các Cơ sở dữ liệu miễn phí với định dạng nhị phân (*. dat) và CSV (*. csv), giúp các bạn dễ dàng tra cứu thông tin liên quan của địa chỉ IP. Hiện nay có khá nhiều thư viện được dùng để đọc nội dung từ file DAT và CSV, các bạn tự tìm hiểu thêm phần này nhé

Cơ sở dữ liệu được cung cấp tại 2 trang này

  • Cơ sở dữ liệu có thể tải xuống miễn phí GeoLite
  • Cơ sở dữ liệu có thể tải xuống miễn phí GeoLite2

Ngoài ra, các bạn có thể tham khảo thêm API mà trang web cung cấp tại đây

Với bài viết “Tra cứu GeoIP quốc gia bằng PHP” này thì các bạn có thể biết thêm về cách sử dụng PHP để lấy dữ liệu từ trang MaxMind này

b, quốc gia ip2. com

Trang web này cung cấp cơ sở dữ liệu MySQL chứa số lượng lớn danh sách địa chỉ IP và thông tin liên quan. Các bạn tải về tại đây

Và dưới đây là một số đoạn mã mẫu được sử dụng để thao tác với cơ sở dữ liệu vừa tải xuống

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>
6

and…

 12.215.42.19
[hostname] => No Hostname
[city] =>
[region] =>
[country] => US
[loc] => 38,-97
[org] => AS7018 AT&T Services, Inc.
)
?>
7

c, http. // phần mềm77. net/geo-ip/

Khi vào trang web này, tại mục Tải xuống ở cột bên phải, các bạn sẽ tải xuống danh sách các IP (v4) với định dạng CSV. Với một số hướng dẫn dưới đây, việc đọc dữ liệu từ tệp CSV trở nên đơn giản hơn

  • Hàm PHP fgetcsv()
  • Hàm str_getcsv() trong PHP
  • Tệp CSV và PHP

3, Tổng kết

Bài viết này khá dài vì tôi muốn giới thiệu đến các bạn tất cả những gì tôi khám phá được. Nếu các bạn thấy trang nào cung cấp API/Database về IP thì cùng chia sẻ với mọi người nhé