sách gpt4 ăn đã đi

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] đang trả về IPv6(HttpContext.Current.Request.ServerVariables[“REMOTE_ADDR”] đang trả về IPv6)

In lại Tác giả: trợ lý lỗi Thời gian cập nhật: 25-10-2023 14:48:03 34 4
mua khóa gpt4 giày nike



HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] của Microsoft đang trả về IPv6 cho máy khách từ xa. Tuy nhiên, tôi cần sử dụng dữ liệu này cho bảng ghi nhật ký phiên trong đó cột ClientIP là varchar(15)... Nói cách khác, tôi cần địa chỉ IP của máy khách IPv4 vì IPv6 gây ra lỗi cắt chuỗi.

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] của Microsoft đang trả lại ipv6 cho các máy khách từ xa. Tuy nhiên, tôi cần dữ liệu này cho bảng nhật ký phiên trong đó cột ClientIP là varchar(15)... Tôi cần địa chỉ IP của máy khách IPv4 vì IPv6 đưa ra lỗi cắt ngắn chuỗi.



Liệu điều này có thực hiện được không?

Điều này có thể thực hiện được không?


Thêm câu trả lời

Bạn không thể tìm ra địa chỉ IPv4 của người dùng chỉ dựa trên địa chỉ IPv6 của họ. Hoàn toàn không thể. (Trong những trường hợp hiếm hoi (và chỉ được hỗ trợ trên các hệ điều hành không phải Windows), địa chỉ IPv6 được bao gồm trong địa chỉ như ::ffff:1.2.3.4 khi ứng dụng sử dụng một socket kép duy nhất để liên kết cả v4+v6, nhưng đó là một kịch bản rất khó xảy ra trong trường hợp của bạn – đặc biệt là khi, như tôi đã nói, nó không được hỗ trợ trên Windows.)

Bạn không thể tìm thấy địa chỉ IPv4 của người dùng chỉ dựa trên địa chỉ IPv6 của họ. Hoàn toàn không thể. (Trong một số ít trường hợp (chỉ được hỗ trợ trên hệ điều hành không phải Windows), khi ứng dụng sử dụng một ổ cắm ngăn xếp kép duy nhất liên kết v4+v6, địa chỉ IPv6 sẽ được bao gồm trong địa chỉ, như: ffff:1.2.3.4, nhưng điều đó rất khó xảy ra. trong trường hợp của bạn -- đặc biệt khi xem xét, như tôi đã nói, Windows không hỗ trợ nó).

Khuyến nghị câu trả lời tuyệt vời

Không, địa chỉ IPv4 và IPv6 của một máy khách hoàn toàn không liên quan, vì vậy bạn không thể tìm thấy địa chỉ IPv4 của ai đó khi họ kết nối qua IPv6. Có thể họ thậm chí không có địa chỉ IPv4... Hoặc ít nhất là không có địa chỉ IPv4 duy nhất. Ngày càng có nhiều ISP bắt đầu chia sẻ địa chỉ IPv4 giữa các khách hàng vì họ không có đủ địa chỉ IPv4 để cung cấp cho mỗi người dùng địa chỉ của riêng họ. Điều đó cũng có nghĩa là địa chỉ IPv4 của người dùng có thể thay đổi theo thời gian, nếu địa chỉ IPv4 xuất phát từ một nhóm địa chỉ mà khách hàng chia sẻ.

Không, địa chỉ IPv4 và IPv6 của khách hàng hoàn toàn không liên quan đến nhau nên khi ai đó kết nối qua IPv6, bạn không thể tìm thấy địa chỉ IPv4 của họ. Có lẽ họ thậm chí không có địa chỉ IPV4. Hoặc ít nhất không phải là một địa chỉ IPv4 duy nhất. Ngày càng có nhiều nhà cung cấp dịch vụ Internet bắt đầu chia sẻ địa chỉ IPv4 giữa các khách hàng vì họ không có đủ địa chỉ IPv4 để cung cấp cho mỗi người dùng địa chỉ riêng của họ. Điều này cũng có nghĩa là nếu địa chỉ IPv4 của người dùng đến từ nhóm địa chỉ do khách hàng chia sẻ thì địa chỉ đó có thể thay đổi theo thời gian.



Tất nhiên bạn có thể thử kết nối người dùng qua IPv4. Nhưng như tôi đã nói: không đảm bảo rằng điều đó sẽ mang lại cho bạn thứ gì đó hữu ích. Và trong tương lai (gần) nó sẽ trở nên tệ hơn...

Tất nhiên, bạn có thể thử cho phép người dùng kết nối qua IPv4. Nhưng như tôi đã nói: không có gì đảm bảo điều này sẽ mang lại cho bạn điều gì đó hữu ích. Trong thời gian tới, mọi chuyện sẽ còn tồi tệ hơn.



Đoạn mã bên dưới sẽ lấy tất cả địa chỉ IP trên máy chủ vì máy chủ có thể có nhiều giao diện mạng.

Mã bên dưới lấy tất cả địa chỉ IP trên máy chủ vì máy chủ có thể có nhiều giao diện mạng.


chuỗi ipList = "";
IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
Danh sách<địa chỉ="" ip=""> ipAddressList = ipHostInfo.AddressList.ToList();
foreach (IPAddress ip trong ipAddress)
{
if (ips.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)//Điều này sẽ kiểm tra xem IP có phải là ipv4 không.
ipList += ips;
}
trả về ip.ToString();

Thêm câu trả lời
34 4 0
trợ lý lỗi
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress