Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में Server IP Address पहचानना


PHP में server का IP address प्राप्त करने के कई तरीके हैं, संदर्भ के आधार पर।

विधि 1: $_SERVER Superglobal (Web Context)

<?php
// सबसे आम - सर्वर का IP जहां स्क्रिप्ट चल रही है
$serverIp = $_SERVER['SERVER_ADDR'];

// सर्वर पोर्ट
$serverPort = $_SERVER['SERVER_PORT'];

echo "Server IP: $serverIp";
echo "Server Port: $serverPort";

विधि 2: gethostname() + gethostbyname() (CLI/Standalone Scripts)

<?php
// PHP 5.3+ के लिए
$hostname = gethostname();
$ipAddress = gethostbyname($hostname);

echo "Hostname: $hostname";
echo "IP Address: $ipAddress";

विधि 3: सभी Network Interfaces प्राप्त करें

<?php
function getAllServerIps() {
    $ips = [];
    
    // Linux/Unix
    if (function_exists('exec')) {
        exec("hostname -I", $output);
        if (!empty($output[0])) {
            $ips = array_merge($ips, explode(' ', trim($output[0])));
        }
    }
    
    // Windows
    if (empty($ips) && function_exists('exec')) {
        exec("ipconfig", $output);
        foreach ($output as $line) {
            if (preg_match('/IPv4 Address.*: (\d+\.\d+\.\d+\.\d+)/', $line, $matches)) {
                $ips[] = $matches[1];
            }
        }
    }
    
    // Fallback
    if (empty($ips)) {
        $ips[] = $_SERVER['SERVER_ADDR'] ?? gethostbyname(gethostname());
    }
    
    return array_unique($ips);
}

print_r(getAllServerIps());

विधि 4: Public IP पता करें (External Service)

<?php
function getPublicIp() {
    $services = [
        'https://api.ipify.org',
        'https://ifconfig.me/ip',
        'https://icanhazip.com',
        'https://ident.me'
    ];
    
    foreach ($services as $service) {
        $ip = @file_get_contents($service);
        if ($ip && filter_var(trim($ip), FILTER_VALIDATE_IP)) {
            return trim($ip);
        }
    }
    return false;
}

echo "Public IP: " . (getPublicIp() ?? 'निर्धारित नहीं कर सके');

कौन सी विधि कब उपयोग करें?

संदर्भअनुशंसित विधि
Web request (Apache/Nginx)$_SERVER['SERVER_ADDR']
CLI script / Cron jobgethostbyname(gethostname())
Docker containergethostbyname(gethostname()) या container metadata
Load balancer के पीछे$_SERVER['HTTP_X_FORWARDED_FOR'] (वैधता के साथ)
Public IP चाहिएExternal API service

Load Balancer/Proxy के पीछे Real IP

function getRealClientIp() {
    $headers = [
        'HTTP_CF_CONNECTING_IP',    // Cloudflare
        'HTTP_X_FORWARDED_FOR',     // Standard proxy
        'HTTP_X_REAL_IP',           // Nginx proxy
        'HTTP_CLIENT_IP',           // Some proxies
        'REMOTE_ADDR'               // Direct connection
    ];
    
    foreach ($headers as $header) {
        if (!empty($_SERVER[$header])) {
            // X-Forwarded-For में multiple IPs हो सकते हैं, पहला लें
            $ips = explode(',', $_SERVER[$header]);
            return trim($ips[0]);
        }
    }
    return $_SERVER['REMOTE_ADDR'] ?? 'unknown';
}
  1. विंडोज़ 10 एरर कोड 0X87E10BC6 कैसे ठीक करें? विंडोज़ 10 एरर कोड 0X87E10BC6 कैसे ठीक करें?

    एरर कोड 0X87E10BC6 3 मुख्य परिदृश्यों में दिखाई देने के लिए जाना जाता है: Xbox ऐप के माध्यम से गेम लॉन्च करते समय, विंडोज़ लाइसेंस सक्रिय करने का प्रयास करते समय, या Windows DVD प्लेयर का उपयोग करने का प्रयास करते समय। आमतौर पर, यह एरर कोड XBOX Live Core सेवाओं के साथ किसी समस्या या DRM मैनेजमेंट मु

  1. टीमस्पीक 3 सर्वर जल्दी कैसे बनाएं टीमस्पीक 3 सर्वर जल्दी कैसे बनाएं

    टीमस्पीक कई उपयोगकर्ताओं के बीच तत्काल ऑडियो संचार के लिए विकसित एक एप्लिकेशन है। यह एक प्रशासक (जो सर्वर होस्ट कर रहा है) और उपयोगकर्ताओं (जो सर्वर से कनेक्ट होते हैं) के साथ एक कॉन्फ्रेंस कॉल की सादृश्यता का पालन करता है। टीमस्पीक के मुख्य उपयोगकर्ता गेमर्स हैं जो गेम खेलते समय एक साथ चैट करना पसं

  1. हुलु एरर कोड  RUNUNK13  कैसे ठीक करें हुलु एरर कोड 'RUNUNK13' कैसे ठीक करें

    कुछ हुलु उपयोगकर्ता जब भी हुलु से कंटेंट स्ट्रीम करने का प्रयास करते हैं तो RUNUNK13 एरर संदेश का सामना कर रहे हैं। यह समस्या विंडोज और मैकओएस से लेकर एंड्रॉइड टीवी और iOS तक विभिन्न प्रकार के डिवाइस पर होने की पुष्टि हुई है। संभावित कारण इस विशेष समस्या की जांच के बाद, पता चलता है कि कई अलग-अलग कार