Ip

如果我阻止使用空白 IP 地址的使用者,這會影響無辜的非技術使用者嗎?

  • January 4, 2012

我經營一個具有匿名評論功能的網站。使用者可以互相舉報濫用行為;標誌與 IP 地址相關聯(通過 PHP 從 中獲取$_SERVER['REMOTE_ADDR'])。

我注意到 99% 的標誌是針對空白 IP 的。

我正在考慮發布一條消息,說“需要 IP 地址才能發表評論”並禁止使用空白 IP。

對於一個非惡意但只想要隱私的精通電腦的人,我並不太擔心。他們可以自行決定是否重視隱私或發表更多評論的能力。

我擔心的是阻止一個沒有意識到他們沒有 IP 地址的**非技術和非惡意使用者,因此當他們無法發表評論時會感到困惑。**有沒有可能發生這種情況的情況?

基於 IP 的網路的規則 #1。在其上進行通信的每個人都有一個 IP。您可以通過第三方偽裝它,但您仍然擁有公共 IP。沒有例外。Internet 是基於 IP 的網路。我懷疑你的程式碼中有一些錯誤的邏輯。

這些變數也有可能只是沒有返回預期的結果,因此是空白的。你可以嘗試這樣的事情:

if ($_SERVER["HTTP_X_FORWARDED_FOR"]) {
  if ($_SERVER["HTTP_CLIENT_IP"]) {
   $proxy = $_SERVER["HTTP_CLIENT_IP"];
 } else {
   $proxy = $_SERVER["REMOTE_ADDR"];
 }
 $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else {
 if ($_SERVER["HTTP_CLIENT_IP"]) {
   $ip = $_SERVER["HTTP_CLIENT_IP"];
 } else {
   $ip = $_SERVER["REMOTE_ADDR"];
 }
}

echo "Your IP $ip<BR>\n";
if (isset($proxy)) {
 echo "Your proxy IP is $proxy<BR>\n";
}

從 PHP 手冊頁中收集到: http ://www.php.net/manual/en/language.variables.predefined.php#31724

引用自:https://serverfault.com/questions/346657