Làm cách nào tôi có thể biết IP của mình trong PHP?

Việc nhận đúng địa chỉ IP từ xa có vai trò quan trọng đối với cả hoạt động theo dõi và mục đích bảo mật

Hướng dẫn này nhằm mục đích giúp các lập trình viên khắc phục những vấn đề như vậy. Hãy tiếp tục và xem cách lấy địa chỉ IP thực từ xa trong PHP. Thông thường, các lập trình viên cố gắng sử dụng $_SERVER[‘REMOTE_ADDR’] để phát hiện địa chỉ IP thực của máy khách

Tuy nhiên, đừng ngạc nhiên khi biết rằng với đoạn mã trên, bạn có thể không nhận được địa chỉ IP thực. Trong trường hợp máy khách sử dụng máy chủ proxy, chức năng trên sẽ không thể giúp bạn xác định chính xác địa chỉ IP của máy khách. May mắn thay, có một giải pháp khác cho vấn đề

Vì vậy, để tìm đúng địa chỉ IP, bạn cần chạy chức năng sau

Cuối cùng, nó đã hoàn tất và bạn có thể chắc chắn rằng mình có địa chỉ IP chính xác của máy khách

Địa chỉ IP là chữ viết tắt của Internet Protocol Address. Nó được coi là nhãn số được gán cho bất kỳ thiết bị nào được liên kết với mạng máy tính bằng Giao thức Internet làm phương tiện để liên lạc

Hai chức năng chính của địa chỉ IP là

  • Nhận dạng giao diện mạng hoặc lưu trữ
  • địa chỉ địa chỉ

Địa chỉ IP được chỉ định là số 32 bit theo Giao thức Internet phiên bản 4. Tuy nhiên, phiên bản IPv6 mới áp dụng 128 bit cho một địa chỉ IP. Cơ quan cấp số được gán Internet quản lý không gian của các địa chỉ IP. Mỗi quản trị viên ISP nên chỉ định một địa chỉ IP cho bất kỳ thiết bị nào hoạt động với mạng của nó

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ụ

Có thể có nhiều tình huống mà bạn sẽ cần biết địa chỉ IP của khách truy cập và sử dụng nó để bảo vệ trang web của bạn tốt hơn. Đây thường là trường hợp đối với trang web động mà bạn có thể thiết lập biểu mẫu, khảo sát hoặc khu vực được bảo vệ. Trong một ví dụ về khảo sát, không có gì lạ khi cho phép mỗi người dùng chỉ tham gia một lần và bạn sẽ sử dụng địa chỉ IP của khách truy cập để áp dụng giới hạn đó. Truy cập thông tin này trong PHP rất đơn giản vì địa chỉ IP có thể truy cập trực tiếp trong biến toàn cục $_SERVER. Và chính xác hơn là $_SERVER['REMOTE_ADDR']. Hãy tạo một chức năng để truy xuất và trả lại địa chỉ IP của khách truy cập của bạn

đị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ó

Giải pháp mẫu. -

Mã PHP



Đầu ra mẫu

Xem đầu ra trong trình duyệt

Sơ đồ

Làm cách nào tôi có thể biết IP của mình trong PHP?

Trình soạn thảo mã PHP

Có một cách khác để giải quyết giải pháp này?

Trước. Tạo một biểu mẫu HTML đơn giản và chấp nhận tên người dùng và hiển thị tên thông qua câu lệnh PHP echo.
Tiếp theo. Viết một tập lệnh phát hiện trình duyệt PHP đơn giản.

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Chia sẻ Hướng dẫn / Bài tập này trên. FacebookTwitter

PHP. Lời khuyên trong ngày

PHP. Còn gì tuyệt vời hơn khi giải phóng bộ nhớ bằng PHP. unset() hoặc $var = null

unset() thực hiện đúng như tên gọi của nó - hủy đặt một biến. Nó không buộc giải phóng bộ nhớ ngay lập tức. Trình thu gom rác của PHP sẽ làm điều đó khi nó thấy phù hợp - theo chủ ý ngay lập tức, vì các chu kỳ CPU đó dù sao cũng không cần thiết hoặc muộn nhất là trước khi tập lệnh hết bộ nhớ, bất cứ điều gì xảy ra trước

Nếu bạn đang làm $whatever = null; . Bạn có thể giải phóng/thu nhỏ bộ nhớ nhanh hơn, nhưng nó có thể đánh cắp các chu kỳ CPU khỏi mã thực sự cần chúng sớm hơn, dẫn đến thời gian thực thi tổng thể lâu hơn

(Kể từ năm 2013, trang hướng dẫn chưa đặt đó không bao gồm phần đó nữa)

Lưu ý rằng cho đến khi php5. 3, nếu bạn có hai đối tượng trong tham chiếu vòng, chẳng hạn như trong mối quan hệ cha-con, việc gọi unset() trên đối tượng cha sẽ không giải phóng bộ nhớ được sử dụng cho tham chiếu cha trong đối tượng con. (Bộ nhớ cũng sẽ không được giải phóng khi đối tượng cha được thu gom rác. ) (lỗi 33595)

Câu hỏi "sự khác biệt giữa unset và = null" nêu chi tiết một số khác biệt

unset($a) cũng xóa $a khỏi bảng biểu tượng;

$a = str_repeat('hello world ', 100);
unset($a);
var_dump($a);

đầu ra

Notice: Undefined variable: a in xxx
NULL

Nhưng khi $a = null được sử dụng

$a = str_repeat('hello world ', 100);
$a = null;
var_dump($a);
Outputs:

NULL

Có vẻ như $a = null nhanh hơn một chút so với đối tác unset() của nó. cập nhật một mục trong bảng biểu tượng có vẻ nhanh hơn việc xóa nó

Làm cách nào tôi có thể nhận địa chỉ IP trong PHP?

Sử dụng hàm getenv(). Để lấy Địa chỉ IP, chúng ta sử dụng lệnh getenv(“REMOTE_ADDR”) . Hàm getenv() trong PHP được sử dụng để truy xuất các giá trị của biến môi trường trong PHP. Nó được sử dụng để trả về giá trị của một biến môi trường cụ thể.

Làm cách nào để xác thực IP trong PHP?

Bộ lọc FILTER_VALIDATE_IP xác thực địa chỉ IP. cờ có thể. FILTER_FLAG_IPV4 - Giá trị phải là địa chỉ IPv4 hợp lệ. FILTER_FLAG_IPV6 - Giá trị phải là địa chỉ IPv6 hợp lệ.