چه طور میتوان از IP واقعی کاربر نهایی آگاه شد؟
از آنجا که شبکه ابر آروان بهشکل میانجی معکوس (Reverse Proxy) عمل میکند، تمامی درخواستهای رسیده به سرور(های) اصلی وبسایت یا وبسرویس در لاگهای سرور اصلی وبسایت به ظاهر از IPهای ابر آروان آمده است. بهمنظور اطلاع دادن آدرس IP واقعی کاربر به مدیر وبسایت، ابر آروان آدرس اصلی کاربر را در هدر HTTP در فیلد مشخصی ذکر میکند.
ابر آروان سه هدر ست میکند که برای دانستن آدرس IP اصلی کاربر باید از آنها استفاده کرد. از جمله X-Real-IP یا ar-real-ip و هدر استاندارد X-Forwarded-For.
در این راهنما به شیوهی مشاهدهی IP اصلی کاربران در زبانهای مختلف میپردازیم. برای راهنمایی بیشتر دربارهی لاگ کردن صحیح IPها، میتوانید از راهنمای فنی شیوه لاگ کردن آدرس IP واقعی کاربر در وبسرور استفاده کنید.
شیوهی دیدن IP اصلی کاربر در ASP.Net
برای گرفتن IP اصلی کاربر در ASP.Net از تکه کد زیر استفاده میکنیم:
} ()Public string function get_real_ip_add
if (!IsEmpty(Request.ServerVariables["AR_REAL_IP"]))
;return Request.ServerVariables["AR_REAL_IP"]
else if (!IsEmpty(Request.ServerVariables["REMOTE_ADDR"]))
return Request.ServerVariables["REMOTE_ADDR"]
{
;()String ip = get_real_ip_add
شیوهی دیدن IP واقعی کاربر در PHP
} ()function get_real_ip_addr
} if (!empty($_SERVER['AR_REAL_IP']))
;ip = $_SERVER['AR_REAL_IP']$
{
} elseif(!empty($_SERVER['REMOTE_ADDR']))
;ip = $_SERVER['REMOTE_ADDR']$
{
;return $ip
{
;()ip = get_real_ip_addr$
شیوهی دیدن IP اصلی کاربر در Python
برای برنامهنویسی تحت شبکه (Socket Programming) در زبان پایتون لازم است از کتابخانهی Socket در برنامهی خود استفاده کنید. با وارد کردن این کتابخانه میتوانید از توابع و کلاسهای آن برای این منظور استفاده کنید:
import socket
:def get_real_ip_addr(request)
ar_real_ip = request.META.get('AR_REAL_IP')
remote_addr = request.META.get('REMOTE_ADDR')
:if ar_real_ip
ip = ar_real_ip
:elif remote_addr
ip = remote_addr
:else
ip = request.META.get('AR_REAL_IP')
return ip
ip = get_real_ip_addr(request)