PHP में क्लाइंट का IP पता कैसे प्राप्त करें: सही समाधान
सभी को नमस्ते! मैं एक नौसिखिया PHP डेवलपर हूँ और मुझे अपनी साइट के विज़िटर का वास्तविक IP पता प्राप्त करने में समस्या आ रही है। मुझे स्पैम सुरक्षा और विश्लेषण के लिए IP लॉग करना है।
समस्या यह है कि मैं $_SERVER['REMOTE_ADDR'] का उपयोग कर रहा हूँ, लेकिन जब साइट Cloudflare या Nginx प्रॉक्सी के पीछे होती है, तो यह विधि प्रॉक्सी सर्वर का IP लौटाती है, न कि वास्तविक उपयोगकर्ता का। मैंने विभिन्न विकल्प आज़माए, लेकिन वे सभी अविश्वसनीय लगते हैं।
यहाँ मेरा वर्तमान कोड है:
```php
$ip = $_SERVER['REMOTE_ADDR'];
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
echo "आपका IP: " . $ip;
```
लेकिन मैंने सुना है कि HTTP हेडर को नकली बनाया जा सकता है, और कोई हमलावर झूठा IP भेज सकता है। क्लाइंट का IP सही और सुरक्षित रूप से कैसे प्राप्त करें? क्या यह ध्यान रखना आवश्यक है कि IP IPv6 हो सकता है? और यदि साइट कई प्रॉक्सी के माध्यम से काम करती है तो क्या करें?
मैं कोड उदाहरणों के साथ विस्तृत स्पष्टीकरण के लिए आभारी रहूँगा।