如何在PHP中获取客户端IP地址

2024-03-12

如何使用 PHP 获取客户端 IP 地址?

我想保留通过 IP 地址登录我的网站的用户的记录。


Answer recommended by PHP /collectives/php Collective

无论您做什么,请确保不要信任客户端发送的数据。$_SERVER['REMOTE_ADDR']包含连接方的真实IP地址。这是您能找到的最可靠的值。

但是,它们可能位于代理服务器后面,在这种情况下,代理可能已设置$_SERVER['HTTP_X_FORWARDED_FOR'],但是这个值很容易被欺骗。例如,它可以由没有代理的人设置,或者 IP 可以是来自代理后面的 LAN 的内部 IP。

这意味着如果您要保存$_SERVER['HTTP_X_FORWARDED_FOR'], 确保你also保存$_SERVER['REMOTE_ADDR']价值。例如。通过将这两个值保存在数据库的不同字段中。

如果要将 IP 作为字符串保存到数据库中,请确保至少有足够的空间45 个字符. IPv6 https://en.wikipedia.org/wiki/IPv6它将继续存在,并且这些地址比旧的 IPv4 地址更大。

(请注意,IPv6 通常最多使用 39 个字符,但也有一个特殊的IPv4 地址的 IPv6 表示法 http://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses其完整形式最多可包含 45 个字符。因此,如果您知道自己在做什么,则可以使用 39 个字符,但如果您只想设置并忘记它,请使用 45)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在PHP中获取客户端IP地址 的相关文章

  • 如何将 JSON 文本转换为 PHP 关联数组

    我将以下 JSON 对象存储在文本文件 data txt 中 player black time 0 from 2c to 3d 我使用 php 阅读 问题 有没有简单的方法可以转换 data到 PHP 关联数组 我尝试过使用json de
  • 如何使用 monolog ElasticSearchHandler 登录 Laravel 应用程序

    Monolog 包含弹性搜索处理程序和格式化程序 但它作为自定义通道对 Laravel 的实现并不像 Laravel 文档网站上描述的那么简单 以下是如何执行此操作的简要分步说明 为您的弹性搜索日志记录创建一个配置文件 config ela
  • Laravel - 删除整个集合

    我有文章的图像 当我更新文章时 我想检查图像是否相同 如果不是 我想删除它们 但如果可能的话 我想删除整个集合而不进行其他查询 诸如此类就像我在下面的代码中一样 images gt delete 这是我的功能 images Media wh
  • 使用 PHPSpreadsheet 打开受密码保护的 XLSX 文件

    我正在尝试打开受密码保护的 Excel 文件 xlsx PHP电子表格 https github com PHPOffice PhpSpreadsheet 文档 https phpspreadsheet readthedocs io en
  • 如何在 Windows 上安装 PHP 的 PDO 驱动程序?

    我在 Windows 服务器上安装了 Apache PHP 5 6 和 MySQL 5 7 在 php ini 中 我启用了以下内容 extension php mysql dll extension php mysqli dll exte
  • PHP、jQuery Ajax 和 json 跨域返回

    我的 php 编码页面位于一台返回 json 结果的服务器上 php 文件名为 getInfoData php 返回如下 echo json encode v 不 我可以使用 getJSON 读取 json 并在同一服务器上运行它 但我需要
  • 如何显示多维数组第二层的 json 值?

    解决此代码时遇到问题 这些是数组 Array 0 gt stdClass Object id gt 1 name gt delux price gt 213 description gt tv gt 0 breakfast gt 0 par
  • 我可以从匿名 PL/SQL 块向 PHP 返回值吗?

    我正在使用 PHP 和 OCI8 执行匿名 Oracle PL SQL 代码块 有没有什么方法可以让我绑定一个变量并在块完成后获取其输出 就像我以类似的方式调用存储过程时一样 SQL declare something varchar2 I
  • 登录后,Codeigniter 会话数据在其他页面不可用

    因此 我设置了一个登录页面来验证用户的凭据 然后设置 codeigniter 会话数据 email 和 is logged in 以及其他一些项目 登录后第一页 数据即可访问 在该页面之后 我无法再访问会话数据 事实上 如果我尝试重新加载第
  • Oracle/PHP - ORA-00911 更新时的无效字符

    我正在运行一个 PHP 脚本 该脚本从 Oracle 数据库实例更新表 首先 我收到一个 JSON 对象 lot KLMHA17N9N00 requestor B10078 id FRESHLOT username B26696 passw
  • 在这个页面中,悬停不起作用,我不知道为什么,而且页脚也没有占用 100% 宽度,即使我已经给了它

    我的编码是否不正确 或者悬停和页脚有什么问题 我需要知道 php 邮件程序是正确的还是我有错误 我无法找到错误 因为邮件功能在本地服务器上不起作用
  • 如何将日期/时间从 24 小时格式转换为 12 小时 AM/PM? [复制]

    这个问题在这里已经有答案了 我从数据源中获取以下格式的日期和时间 19 24 15 06 13 2013 我需要将其转换为 12 小时 AM PM 格式 不带秒 所以上面的时间是晚上 7 24 日期应保留为 mm dd yyyy 格式 在
  • PHP - 发送带有附件的电子邮件不显示消息内容

    尝试创建一个脚本 我可以在其中发送带有附件的电子邮件 一切正常 除了当我不在电子邮件中添加文件时 我仍然可以看到带有 0B 且没有名称的附件 if isset POST my send email to POST my email to r
  • 是否可以使用 Javascript 读取 PHP 会话?

    我正在使用 cakePHP 1 26 在控制器中 我得到了一个包含以下代码行的函数 this gt Session gt write testing user this gt Session gt read testing 现在系统编写了一
  • 为 SimpleXMLElements 数组编写 foreach 循环

    我正在使用 PHP 5 中的 XPath 来解析 XML 文档 我遇到的问题是写一个foreach正确显示以下数组 XML 文档示例 值1 值2 xmlfile link to file xml xmlRaw file get conten
  • 从数据库生成 XML 时出现 PHP 编码错误 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试获取一个简单的 PHP 服
  • PHP 与 .= 相反

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道是
  • PHP邮件功能有时可以工作

    我正在编写一个脚本 需要通过PHP邮件功能发送电子邮件 如下所示 它在向 gmail 帐户发送电子邮件时有效 但在我的域中的帐户却无效 我们正在运行 Exchange 服务器 截至目前 电子邮件是从 www server 发送的 有谁知道
  • 将 DNS 名称指向本地计算机上的 IP 地址

    这可能是一个愚蠢的问题 但我真的很感激任何简洁的答案 我已使用静态 IP 地址 例如 213 221 211 111 在本地计算机上上传了 Joomla 网站 我已在 Godaddy com 上注册了一个域名 例如 www example
  • Laravel 集合 .each() + array_push

    需要有关 Laravel 上 each 方法内的 array push 的帮助 我无法在此代码上获取容器数组 imagesData array collect data images gt each function v k use ima

随机推荐