使用 PHP 检查 IPv4/IPv6 地址是否已启动

2024-03-10

我有一个 IPv4 地址。前任。172.19.20.21

我曾经这样做过

$fs = @fsockopen($ip,$port,$errno,$errstr,3);
if( !$fs ){
  $error = 'SSC is down';
  return Redirect::to('/')->with('error', $error )
  ->withInput(Request::except('password'));
}

它工作得很好。

现在,我有一个 IPv6 地址 Ex。3000::1

if ((strpos($ip, ":") > -1)){

     // Code for IPv6 check
    $fs = @fsockopen($ip,$port,$errno,$errstr,3);
    if( !$fs ){
      $error = 'SSC is down';
      return Redirect::to('/')->with('error', $error )
      ->withInput(Request::except('password'));
    }

}else{

    // Code for IPv4 check
    $fs = @fsockopen($ip,$port,$errno,$errstr,3);
    if( !$fs ){
      $error = 'SSC is down';
      return Redirect::to('/')->with('error', $error )
      ->withInput(Request::except('password'));
    }
}

我可以使用上面的代码吗?或者我需要寻找其他 IPv6 解决方案?


解析 IP 地址的内置方法是inet_pton() http://php.net/inet_pton:

此函数转换人类可读的 IPv4 或 IPv6 地址(如果 PHP 在启用 IPv6 支持的情况下构建)到地址族中 适当的32位或128位二进制结构。

例如,要确定格式,您可以计算结果字节数:

strlen(inet_pton($ip))
4 bytes = 32 bits = IPv4
16 bytes = 128 bits = IPv6

(不过,在您的确切用例中,目前还不清楚为什么您首先需要它。)

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

使用 PHP 检查 IPv4/IPv6 地址是否已启动 的相关文章

  • PHP/MySQL/jQuery 记录的悲观锁定

    我一直在考虑为我参与的应用程序开发一些简单的记录锁定 有一些用户实际上需要花费几个小时才能完成记录的编辑 当其他人想要更改记录时 这会导致问题 目前不涉及锁定 我不确定乐观锁定在我的情况下是否可靠 因为记录是通过 AJAX 请求保存的 我正
  • 使用 Curl 登录 meetup.com

    我正在尝试自动登录 www meetup com 但没有成功 这是我的代码
  • PHP 矩阵的逆矩阵

    I saw 这个问题 https stackoverflow com questions 211160 python inverse of a matrix 并弹出这个想法 PHP 有没有一种有效的方法来做到这一点 EDIT 最好有演示 你
  • 如何应对本地化?我应该遵循一个标准吗?

    我正在尝试创建一组类来处理本地化 主要是货币部分 但也包括语言 我可以想象其中的逻辑 但我不知道不同的语言和货币使用什么名称 我看到有很多 ISO 标准 我应该选择哪一个 不管怎样 这是我想到的逻辑 以防你也能帮忙解决这个问题 我会有一个
  • 在 CodeIgniter 中使用 ajax 时出现 403 禁止错误

    我正在显示我的名字textbox使用 ajax 自动完成 但我的 ajax URL 不起作用 每次都显示在网络选项卡中 403 禁止 我尝试过像这样的ajax URL url baseUrl index php Employee contr
  • PHP exec - 检查是否启用或禁用

    有没有办法检查 php 脚本是否exec 在服务器上启用还是禁用 这将检查该功能是否确实有效 权限 权利等 if exec echo EXEC EXEC echo exec works
  • 以阿拉伯语显示日期

    这是我的代码 setlocale LC ALL ar echo strftime e b Y strtotime 2011 10 25 Output 25 Sep 2011 为什么不显示阿拉伯日期 我是否错误地使用了 strftime 在这
  • 如何在 Mac 上更改 PHP-FPM 端口

    我没有使用 php 或 php fpm 但它占用了端口 9000 我需要端口 9000 我想更改端口 我把它改成了 etc php fpm conf and etc php fpm d www conf 听 127 0 0 1 9005 仍
  • 如何在课外使用$this?

    我们可以使用 this课外 请看下面的例子
  • 音频端播放新文件

    我有一个webapp https radio repjesus com当您使用 ajax jquery 单击链接时加载并播放音轨 一切正常 但当曲目结束时 曲目将设置为循环 并且这种情况可以永远持续下去 我希望播放器从数据库中自动加载随机曲
  • 在 Windows 10 中安装 laravel 安装程序时出现错误

    我正在使用 Windows 10 并且composer已安装 当我尝试安装时laravel使用此命令全局安装程序 composer global require laravel installer Composer Downloader T
  • 这段php代码安全吗?

    我知道我应该使用准备好的语句 但我的下一个项目将使用准备好的语句 我只需要完成这个简单的小应用程序 所以我的问题是 以下代码片段安全吗 我使用了 htmlentities 以及 mysql real escape string 因为我认为这
  • PHP 如何保持下拉列表中选定的选项在提交时保持选中状态?

    I have
  • 社交登录重复帐户冲突

    我正在制作一个新应用程序 除了常规电子邮件 密码注册之外 还需要多个社交注册 但是有一种特殊情况可能会导致数据完整性问题 例子 用户在 Facebook 上注册 但没有收到任何电子邮件回复 我在数据库中创建一个用户 将电子邮件和密码设置为
  • Laravel 4:Facades 是如何解决的?

    我有点想看看 Laravel 4 发生了什么facades在引擎盖下 我们以这个 Facade 为例 File get someArgs 如果我没有记错的话 逐步 过于简化 的调用将是 static method invocation wh
  • 当与不需要虚拟机的编译程序一起使用时,CGI 是否仍然很慢?

    当我学习 CGI 时 我了解到任何编程语言都可以用来将其输出挂钩到 http 响应消息 而它的输入是 http 请求消息 我读过的很多文章都在 Perl 的背景下讨论 CGI 这是因为 Perl 是与 CGI 结合使用的最常见的语言吗 我想
  • /etc/php5/conf.d 文件夹中的 .ini 文件有什么用?

    我知道 ini 文件位于 etc php5 cli与 PHP 的 CLI 使用有关 文件位于 etc php5 fpm是关于 PHP 的 FastCGI FPM 方面 但是位于以下位置的 ini 文件又如何呢 etc php5 conf d
  • 获取当前时间(以小时和分钟为单位)

    我正在尝试从系统收集信息 并且需要获取当前时间 以小时和分钟为单位 目前我有 date awk print 4 输出如下 16 18 54 怎样才能把秒数去掉呢 提供格式字符串 date H M Running man date将给出所有格
  • 在 Laravel 中使用 PUT/DELETE 有什么价值?

    用于将路由定义为资源Route resource 文档表明 Verb Path Action Route Name GET resource index resource index GET resource create create r
  • PHP 中使用 MVC 的 Post-Redirect-Get (PRG) 最佳实践

    PRG 模式与 MVC 是否有最佳实践 在本教程中 http www theserverside com news 1365146 Redirect After Post http www theserverside com news 13

随机推荐