نمایش IP کاربر در وردپرس
گاهی نیاز دارید آدرس IP بازدیدکنندگان را در سایت وردپرسی نمایش دهید. مثلاً برای ابزارهای تست شبکه، صفحات عیبیابی یا نمایش اطلاعات اتصال کاربر.
روش ۱: شورتکد در functions.php
کد زیر را به functions.php قالب فرزند اضافه کنید:
function show_user_ip_shortcode() {
$ip = '';
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return '<strong>' . esc_html($ip) . '</strong>';
}
add_shortcode('user_ip', 'show_user_ip_shortcode');
سپس در هر صفحه یا نوشته از شورتکد [user_ip] استفاده کنید.
روش ۲: استفاده از PHP مستقیم
در فایل قالب (مثل page.php):
<?php echo esc_html($_SERVER['REMOTE_ADDR']); ?>
روش ۳: افزونه
افزونههایی مانند What Is My IP Address بدون نیاز به کدنویسی IP کاربر را نمایش میدهند.
نکته مهم: Reverse Proxy و CDN
اگر از CloudFlare یا Reverse Proxy (مانند Nginx) استفاده میکنید، REMOTE_ADDR آدرس IP پراکسی را نشان میدهد، نه IP واقعی کاربر. در این حالت باید HTTP_X_FORWARDED_FOR یا هدر CF-Connecting-IP (برای CloudFlare) را بخوانید:
$real_ip = $_SERVER['HTTP_CF_CONNECTING_IP'] ??
$_SERVER['HTTP_X_FORWARDED_FOR'] ??
$_SERVER['REMOTE_ADDR'];
نکات امنیتی
همیشه خروجی IP را با esc_html() فیلتر کنید تا از حملات XSS جلوگیری شود. IP کاربران را بدون رضایت آنها ذخیره نکنید (قوانین GDPR). از نمایش IP فقط در صفحات ضروری استفاده کنید.
هاست وردپرس میهن هاستینگ با PHP بهینه برای اجرای شورتکدها. سرور مجازی با IP اختصاصی.