我正在我的网站中构建一个功能,用户可以在其中添加帖子到他们的收藏夹。
我现在使用的代码是$_SERVER['REMOTE_ADDR'];
所以我的变量是这样的:
$ip = $_SERVER['REMOTE_ADDR'];
但这似乎是获取用户的网络IP,因为我网络上的所有计算机都有相同的收藏夹。
我想要的东西是设备的(计算机)IP地址。
答案 0 :(得分:5)
您只能访问用户面向公众的IP地址 - 如果用户坐在路由器后面,那将是路由器的IP地址。无法获取内部IP地址。
如果网络上有多个人,在同一个路由器后面,他们都将拥有相同的公共IP地址。
答案 1 :(得分:1)
最好的方法是在网页中注册用户。他们可以登录并保存与其用户名相关的收藏夹。糟糕的方式是使用cookies($ _COOKIES)。
您不能使用IP地址在公共网站中存储相关信息,除非它是内联网,并且您确定您的网络计算机具有静态IP。
答案 2 :(得分:0)
这是确定连接到您网站的客户的唯一性的一种非常糟糕的方法。您可能已经看到了WAN地址,因为LAN结构是私有的,所以您将获得所有这些地址。即使您确实获得了LAN IP地址,它们也不会是唯一的。
您最好通过session_start()和$ _SESSION设置Cookie并使用它。更好的是,创建一个小型用户帐户系统(不要忘记散列这些密码)。
答案 3 :(得分:0)
这不是互联网的工作原理 - 如果您没有直接连接到互联网,您将拥有网络上每台计算机的某种内部IP。这个内部网络由某种路由器管理并创建“内部网络”,你可以说是一个非常小的互联网。这个“小型互联网”连接到您的ISP,并获得一个公共IP地址,路由器用于路由内部流量到公共互联网,但仅限于使用 public ip,而不是内部 ip。
您可以做的是在用户访问您的网站时设置视频并在他返回时阅读,这种视觉将是唯一的,并标识计算机。在这种情况下,您可以存储所需的所有数据。视觉效果如何工作可以阅读here。
内部网络图示:
我希望我能帮助一下,抱歉我的英语不好,我来自德国:)