【问题标题】:How do websites keep track of IP addresses [closed]网站如何跟踪 IP 地址 [关闭]
【发布时间】:2013-12-06 11:35:07
【问题描述】:

我创建了一个网站,我希望允许特定的 IP 地址能够访问该网站。
经过一番研究,我发现 IP 地址可能每天都在变化。有没有办法获取新地址?

【问题讨论】:

  • 正确的表述方式是“IP 地址可能会改变”。这取决于您的 ISP,请致电他们。否则使用登录名。
  • 只有动态 IP 不会改变静态 IP。您可以允许静态 IP 访问您的网站。
  • 正如您自己所说,有些人将拥有动态 IP 地址-因此您要么每天添加允许新 IP,要么将概念抛到脑后,认为他会起作用-并改用常规会员系统,例如
  • 使用登录的东西。最简单的 .htaccess

标签: php html ip-address remote-server


【解决方案1】:

IP 地址会根据查看您网站的用户的 ISP 而变化。有些会被分配一个静态 IP,而许多家庭用户可能会被分配一个动态 IP,该 IP 可能会随着变化而变化。

处理用户身份验证有几个不同的选项,可用性级别各不相同:

  • 使用登录表单并创建用户。您必须创建一个数据库来存储加密密码和其他用户数据。

  • 使用 IP 地址白名单登录。您可以使用 PHP 中的 $_SERVER['REMOTE_ADDR'] 变量检测服务器请求的来源。请注意,如果用户通过代理,您将返回代理 IP 而不是用户。您可以要求您的白名单 IP 数组之外的任何人登录。

  • 设置数据库的小示例脚本:

    $ msyql -u root -pYourPassword
    > CREATE DATABASE mysite;
    > CREATE TABLE users (id TINYINT NOT NULL AUTO_INCREMENT, name VARCHAR(30), password VARCHAR(60), email VARCHAR(30), PRIMARY KEY (id));
    

这就是创建一个非常简单的数据库。为了安全起见,您应该始终在将密码通过 MySQL PASSWORD() 函数之前对其进行加盐。

  • 如果您不习惯使用数据库,可以使用 htaccess 管理用户登录凭据。它很简单,不会提供程序化登录所带来的额外好处或可管理性。

    #just a basic login
    AuthType Basic
    
    AuthName "Login Required"
    #the absolute path to your htpasswd. you can use relative, just be conscious if you move either file
    AuthUserFile /path/to/.htpasswd
    #if you don't have this, your already limited security is blown
    Require valid-user
    
  • 根据 htaccess,无论 .htpasswd 位于何处,您都会有一个文件 .htpasswd,每个用户一行,如下所示:

    john:$apr1$j08c8l7h$ck52z9GqO0VTgKY5OMerV0
    
  • 无论何时使用 .htaccess 方法,您都应该拥有这些文件并对其进行 chmod 600 以确保只有 Apache 用户可以读取它们:

    chown www-data:www-data .htaccess && chmod 600 .htaccess
    
    chown www-data:www-data /path/to/.htpasswd && chmod 600 .htpasswd
    

我会强烈推荐使用标准登录系统,并将您的信息存储在 MySQL(或 postgres、oracle 等)数据库中。您自己注意到 IP 地址确实会发生变化,并且频繁更新和仅使用 IP 地址列表管理对站点的访问既不高效也不安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2020-05-01
    • 2011-05-15
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多