Làm cách nào để lấy địa chỉ IPv4 trong PHP?

Có nhiều cách để lấy địa chỉ IP cục bộ nhưng tôi sẽ đưa ra đây những phương pháp dễ nhất để có được kết quả

Tìm địa chỉ IP cục bộ bằng PHP

nếu bạn đang sử dụng phiên bản PHP 5. 3 trở lên thì đây có thể là cách tốt nhất để lấy Địa chỉ IP Cục bộ

Một cách khác được cung cấp dưới đây

gethostbyname . Lấy địa chỉ IPv4 tương ứng với tên máy chủ Internet đã cho.

Đây cũng là một cách hay để tìm địa chỉ IP cục bộ của thiết bị được kết nối với mạng

Điều này cũng sẽ cung cấp cho bạn địa chỉ IP cục bộ

Lớp PHP dễ sử dụng để phát hiện vị trí máy khách

 

Trên thực tế ở đây exec được sử dụng để thực thi một lệnh nhất định và thậm chí bạn có thể tránh cắt để có được kết quả tương tự

đị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 để lấy địa chỉ IPv4 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
Kế tiếp. 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



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

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

PHP. Làm cách nào để lấy tên biến dưới dạng chuỗi trong PHP?

Bạn có thể sử dụng get_define_vars() để tìm tên của một biến có cùng giá trị với tên mà bạn đang cố gắng tìm. Rõ ràng điều này không phải lúc nào cũng hiệu quả, vì các biến khác nhau thường có cùng giá trị, nhưng đó là cách duy nhất tôi có thể nghĩ ra để làm điều này

Chỉnh sửa. get_define_vars() dường như không hoạt động chính xác, nó trả về 'var' vì $var được sử dụng trong chính hàm đó. $GLOBALS dường như hoạt động nên tôi đã thay đổi nó thành đó

function print_var_name($var) {
    foreach($GLOBALS as $var_name => $value) {
        if ($value === $var) {
            return $var_name;
        }
    }

    return false;
}

Chỉnh sửa. rõ ràng, không có cách nào tốt để làm điều này trong PHP, điều này có thể là do bạn không cần phải làm điều đó. Có lẽ có những cách tốt hơn để làm những gì bạn đang cố gắng làm

Đầu tiên tôi sẽ trình bày mã PHP một dòng đó, sau đó hiển thị một hàm nhỏ gần như bao gồm các trường hợp còn lại. Tiếp theo là một cuộc thảo luận về các vấn đề riêng tư để lấy địa chỉ IP

Bài viết này có những điều sau đây,

  1. Tập lệnh một dòng để lấy địa chỉ IP bằng PHP
  2. Một chức năng đơn giản để lấy địa chỉ IP trong mọi trường hợp
  3. Thảo luận về các vấn đề riêng tư trong việc lấy địa chỉ IP

Nhận địa chỉ IP bằng PHP trong một dòng


$_SERVER là một mảng PHP được đặt bởi máy chủ. Có khả năng giá trị này có thể chưa được đặt. Ngoài ra, hãy lưu ý rằng, người dùng có thể dễ dàng giả mạo các tiêu đề này bằng cách tự đặt địa chỉ IP

Nhận địa chỉ IP bằng PHP

Tập lệnh PHP sau bao gồm phần lớn kịch bản và trả về địa chỉ IP của người dùng


Rest of the article is for comprehensiveness. If you just want to get IP address using PHP, you can stop at this point. Copy the above script and carry on with your IP address journey.

How to validate user’s IP address

IP address can be easily spoofed. It can come from behind a proxy server. CloudFlare like proxies can be involved. Localhost can return invalid IP address. So, if you want to validate an IP address, use the below script.

________2

Flowchart to get IP address

Following flowchart explains the flow of control to get IP address using PHP.

Làm cách nào để lấy địa chỉ IPv4 trong PHP?

Get user’s IP address for CloudFlare hosted websites

When the website is hosted using CloudFlare service, $_SERVER['REMOTE_ADDR'] sẽ trả về địa chỉ IP của máy chủ CloudFlare chứ không phải địa chỉ IP ban đầu của người dùng. Vì vậy, trong tình huống như vậy, bạn có thể sử dụng biến do máy chủ CloudFlare đặt để lấy địa chỉ IP

Tôi đã lấy CloudFlare làm ví dụ. Có nhiều dịch vụ tương tự. Bạn cần trao đổi với nhà cung cấp dịch vụ đó để biết họ đang đặt tiêu đề yêu cầu nào và lấy địa chỉ IP tương ứng

if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
        $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
        $ipAddress = $_SERVER['REMOTE_ADDR'];
}

Độ tin cậy của địa chỉ IP

$_SERVER['REMOTE_ADDR'] là biến đáng tin cậy nhất trong danh sách các biến ở trên. REMOTE_ADDR cũng có thể không chứa địa chỉ IP thực của kết nối TCP. Nó phụ thuộc vào cấu hình SAPI

Nếu người dùng đứng sau máy chủ proxy, thì HTTP_X_FORWARDED_FOR sẽ được đặt. Nhưng người dùng có thể dễ dàng giả mạo điều này bằng cách đặt địa chỉ IP mà anh ta muốn tiết lộ

Ngay cả biến X-Forwarded-For hoặc Client-IP cũng có thể được người dùng đặt thành bất kỳ giá trị nào anh ta muốn

Lấy ví dụ về giỏ hàng. Bạn có thể hiển thị giá sản phẩm theo quốc gia của người dùng. Trong trường hợp như vậy, bạn có thể sử dụng địa chỉ IP của người dùng để xác định quốc gia của người dùng. Trong trường hợp như vậy, mã để lấy địa chỉ IP của người dùng phải dễ hiểu

Độ dài trường địa chỉ IP

Khi bạn đang lưu trữ địa chỉ IP trong cơ sở dữ liệu, hãy nhớ có kích thước trường là 45 cho một IP. Bởi vì có khả năng cho các địa chỉ IP IPv6. Ở dạng đầy đủ, địa chỉ IP IPv6 có thể dài 45 ký tự

Cách lấy địa chỉ IP của máy chủ

Sử dụng tên máy chủ, chúng tôi có thể lấy địa chỉ IP của máy chủ bằng chức năng tích hợp sẵn của PHP


0. Điều này trả về địa chỉ IPv4


Đầu ra để lấy địa chỉ IP cho Google

Địa chỉ IP của Google là. 142. 250. 67. 36

Nhận tên máy chủ bằng địa chỉ IP

Cũng có thể làm ngược lại bằng cách sử dụng


1

Các vấn đề về quyền riêng tư trong việc lấy địa chỉ IP của người dùng

Địa chỉ IP của khách hàng có thể được coi là thông tin cá nhân trong một số luật nhất định. Nó phụ thuộc vào vùng đất của pháp luật. Bạn không bao giờ biết bạn sẽ có được người dùng từ khu vực địa lý nào

Theo GDPR (Điều 4, Điểm 1; và Recital 49), địa chỉ IP là dữ liệu cá nhân. Tôi khuyên bạn nên thông báo cho người dùng và nhận được sự đồng ý để đăng nhập địa chỉ IP. Ngoài ra, hãy gọi nó một cách rõ ràng trong tài liệu “Chính sách bảo mật” của bạn

Nêu rõ rằng bạn đang thu thập và ghi lại địa chỉ IP của người dùng khách hàng và lý do làm như vậy

Phần kết luận

Hiểu rõ về kịch bản mà bạn sẽ lấy địa chỉ IP của người dùng là rất quan trọng. Sau đó hiểu rằng người dùng cuối có thể dễ dàng giả mạo địa chỉ IP của mình. Thứ ba hiểu từng biến máy chủ, từ đó địa chỉ IP được tìm nạp. Cuối cùng nhưng không kém phần quan trọng, hãy nêu rõ ràng trong chính sách quyền riêng tư của bạn rằng bạn đang lấy địa chỉ IP của người dùng khách hàng

Làm cách nào tôi có thể biết địa chỉ IP MÁY CHỦ của mình trong PHP?

Để lấy địa chỉ IP của máy chủ, người ta có thể sử dụng ['SERVER_ADDR'] , nó sẽ trả về địa chỉ IP của máy chủ . Một phương pháp khác là sử dụng ['REMOTE_ADDR'] trong mảng $_SERVER.

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

Địa chỉ IP? . use $_SERVER['REMOTE_ADDR'] to get the IP address of the remote client, then you can use gethostbyaddr() to try and conver that IP into a hostname - but not all IPs have a reverse mapping configured.

Cách lấy vị trí người dùng bằng địa chỉ IP trong PHP?

Ví dụ trong PHP. $data = file_get_contents("http. //api. chủ nhà. thông tin/quốc gia. php?ip=12. 215. 42. 19"); //$dữ liệu chứa. "US" $data = file_get_contents("http. //api. chủ nhà. thông tin/?ip=12. 215. 42. 19"); //$dữ liệu chứa. XML với quốc gia, lat, long, city, v.v.

Làm cách nào để lấy thông tin khách hàng trong PHP?

Có hai cách để lấy Địa chỉ IP của máy khách trong PHP. Một cách là sử dụng biến $_SERVER và một cách khác là sử dụng hàm getenv().