Làm cách nào để lấy địa chỉ IP của một trang web trong PHP?

PHP có thể được sử dụng để lấy Địa chỉ IP của khách truy cập trang web, địa chỉ IP của máy chủ lưu trữ trang web và phân giải địa chỉ IP để lấy tên máy chủ. k. một bản ghi DNS đảo ngược. PHP đã xác định trước biến mảng $_SERVER bằng cách sử dụng địa chỉ IP của cả khách truy cập và máy chủ có thể được truy xuất. Hàm gethostbyaddr[] được sử dụng để tìm ra tên máy chủ. Các chỉ số REMOTE_ADDR và ​​HTTP_HOST chứa địa chỉ IP của khách truy cập và địa chỉ IP của máy chủ Để tìm địa chỉ IP của khách truy cập bằng PHP, hãy sử dụng biến $_SERVER[‘REMOTE_ADDR’]. Ví dụ, đoạn mã sau

sẽ hiển thị địa chỉ IP của khách truy cập cho chính khách truy cập. Nếu bạn muốn ghi lại địa chỉ IP này, hãy chèn giá trị vào cơ sở dữ liệu

Để biết địa chỉ IP của máy chủ web của bạn bằng PHP, hãy sử dụng biến $_SERVER[‘HTTP_HOST’]

Để lấy tên máy chủ của biến, hãy sử dụng hàm gethostbyaddr[] với địa chỉ IP làm tham số. Ví dụ

địa chỉ IP. Địa chỉ Giao thức Internet [địa chỉ IP] là nhãn số được gán cho từng thiết bị được kết nối với mạng máy tính sử dụng Giao thức Internet để liên lạc. Một địa chỉ IP phục vụ hai chức năng chính. nhận dạng giao diện máy chủ hoặc mạng và địa chỉ vị trí

Giao thức Internet phiên bản 4 [IPv4] xác định địa chỉ IP là số 32 bit. Tuy nhiên, do sự phát triển của Internet và sự cạn kiệt của các địa chỉ IPv4 có sẵn, một phiên bản IP mới [IPv6], sử dụng 128 bit cho địa chỉ IP, đã được phát triển vào năm 1995 và được tiêu chuẩn hóa vào tháng 12 năm 1998. Vào tháng 7 năm 2017, một định nghĩa cuối cùng của giao thức đã được xuất bản. Việc triển khai IPv6 đã được tiến hành từ giữa những năm 2000

Địa chỉ IP thường được viết và hiển thị bằng các ký hiệu mà con người có thể đọc được, chẳng hạn như 172. 16. 254. 2 trong IPv4 và 2001. db8. 0. 1234. 0. 567. 8. 1 trong IPv6. Kích thước của tiền tố định tuyến của địa chỉ được chỉ định trong ký hiệu CIDR bằng cách thêm vào địa chỉ một số lượng bit quan trọng, e. g. , 192. 168. 1. 16/24, tương đương với mặt nạ mạng con được sử dụng trong lịch sử 255. 255. 255. 0

Không gian địa chỉ IP được quản lý trên toàn cầu bởi Cơ quan cấp số được gán Internet [IANA] và bởi năm cơ quan đăng ký Internet khu vực. Họ chịu trách nhiệm trong các lãnh thổ được chỉ định của họ để chuyển nhượng cho người dùng cuối và cơ quan đăng ký Internet địa phương, chẳng hạn như nhà cung cấp dịch vụ Internet. Địa chỉ IPv4 đã được IANA phân phối tới các RIR theo khối khoảng 16. 8 triệu địa chỉ mỗi. Mỗi ISP hoặc quản trị viên mạng riêng chỉ định một địa chỉ IP cho từng thiết bị được kết nối với mạng của nó

Nhiều lần chúng tôi cần thu thập địa chỉ IP của khách truy cập để theo dõi hoạt động và vì lý do bảo mật. Rất dễ lấy địa chỉ IP của khách truy cập trong PHP. Biến $_SERVER của PHP cung cấp một cách dễ dàng để lấy địa chỉ IP của người dùng. $_SERVER chứa một mảng cung cấp thông tin liên quan đến máy chủ và môi trường trong PHP

Cách đơn giản nhất để lấy địa chỉ IP của khách truy cập là sử dụng chỉ số REMOTE_ADDR trong phương thức PHP $_SERVER

  • $_SERVER['REMOTE_ADDR'] – Trả về địa chỉ IP của người dùng đang xem trang hiện tại
echo 'User IP - '.$_SERVER['REMOTE_ADDR'];

Nhưng đôi khi REMOTE_ADDR không trả về đúng địa chỉ IP của người dùng. Lý do đằng sau điều này là sử dụng Proxy. Trong tình huống đó, hãy sử dụng đoạn mã sau để lấy địa chỉ IP thực của người dùng trong PHP

Thật dễ dàng để lấy địa chỉ IP cho một tên miền bằng cách sử dụng các hàm gethostbyname[] và gethostbynamel[] của PHP. Bài đăng này xem xét một số ví dụ về cách sử dụng hàm gethostbyname[] trong PHP để lấy một địa chỉ IP duy nhất cho tên máy chủ

Các miền ví dụ được sử dụng

Các ví dụ trong bài đăng này sử dụng www. cnn. com và www. hộp công cụ điện. com. Tại thời điểm viết bài này, www. cnn. com phân giải thành 4 địa chỉ IP có thể như sau

$ nslookup www.cnn.com
Name:   www.cnn.com
Address: 157.166.226.26
Name:   www.cnn.com
Address: 157.166.255.18
Name:   www.cnn.com
Address: 157.166.224.26
Name:   www.cnn.com
Address: 157.166.226.25

và www. hộp công cụ điện. com phân giải thành một địa chỉ IP duy nhất như sau

$ nslookup www.electrictoolbox.com
www.electrictoolbox.com canonical name = electrictoolbox.com.
Name:   electrictoolbox.com
Address: 120.138.20.39

Sử dụng gethostbyname[]

Hàm PHP gethostbyname[] rất đơn giản để sử dụng. Chỉ cần chuyển cho nó tên miền bạn muốn tra cứu và nó sẽ trả về địa chỉ IP cho miền đó hoặc trả lại miền chưa sửa đổi nếu không thành công. Nếu tên miền có nhiều hơn một địa chỉ IP được liên kết với nó [như với www. cnn. com] thì chỉ một địa chỉ IP duy nhất sẽ được trả lại

ví dụ 1

$x = gethostbyname['www.electrictoolbox.com'];
var_dump[$x];
// outputs string[13] "120.138.20.39"

ví dụ 2

$x = gethostbyname['www.cnn.com'];
var_dump[$x];
// string[14] "157.166.255.19"
// OR string[14] "157.166.255.18"
// OR string[14] "157.166.224.26"
// OR string[14] "157.166.224.25"

ví dụ 3

Ví dụ này dành cho miền không tồn tại và trả về chính miền đó thay vì địa chỉ IP

$x = gethostbyname['www.blah.foo'];
var_dump[$x];
// outputs string[12] "www.blah.foo"

Nếu bạn cần làm điều gì đó dựa trên địa chỉ IP không được tìm thấy, bạn có thể làm điều gì đó như thế này

$domain = 'www.blah.foo';
$ip = gethostbyname[$domain];
if[$domain != $ip] {
    // do something
}

Lưu ý rằng việc không thể tìm thấy địa chỉ IP cho miền không có nghĩa là miền đó không tồn tại hoặc thậm chí là bản ghi không tồn tại cho miền [phụ] này. Việc tra cứu DNS có thể đơn giản là đã thất bại

Sử dụng gethostbynamel[]

Hàm PHP gethostbynamel[] trả về một danh sách các địa chỉ IP cho một tên miền và tôi sẽ xem xét một số ví dụ về việc sử dụng hàm này vào thứ Hai

Làm cách nào để lấy địa chỉ IP từ tên máy chủ trong PHP?

Xem thêm ¶ .
gethostbyaddr[] - Nhận tên máy chủ Internet tương ứng với một địa chỉ IP nhất định
gethostbynamel[] - Nhận danh sách địa chỉ IPv4 tương ứng với tên máy chủ Internet nhất định
inet_pton[] - Chuyển đổi địa chỉ IP có thể đọc được của con người thành biểu diễn in_addr được đóng gói của nó

Làm cách nào để lấy URL trong PHP?

Các biến siêu toàn cầu cần thiết như $_SERVER['HTTPS'], $_SERVER['REQUEST_URI'], $_SERVER['SERVER_PORT'] are used to get full URL in PHP. The variable HTTPS can easily retrieve the protocol in the URL of a webpage. If it returns a value “on”, then the protocol is HTTPS.

Làm cách nào tôi có thể nhận vị trí hiện tại từ địa chỉ IP trong PHP?

Nhận Vị trí từ Địa chỉ IP bằng PHP . Gọi API qua yêu cầu HTTP GET bằng cách sử dụng cURL trong PHP. Chuyển đổi phản hồi API JSON thành mảng bằng hàm json_decode[]. Truy xuất dữ liệu IP từ phản hồi API. Use the IP Geolocation API to get the user's location from IP using PHP. Call API via HTTP GET request using cURL in PHP. Convert API JSON response to array using json_decode[] function. Retrieve IP data from API response.

Chủ Đề