草庐IT

php - Cloudflare header 返回 IPV6 地址

我有一个简单的php脚本,可以在用户连接到我的网站时记录他们的IP地址,我的网站使用CloudFlare。我使用$_SERVER["HTTP_CF_CONNECTING_IP"];来返回客户端IPV4地址,这样它就可以用日期和时间登录到一个文件中,但有时它会记录一个IPV6地址。if(isset($_SERVER["HTTP_CF_CONNECTING_IP"])){$_SERVER['REMOTE_ADDR']=$_SERVER["HTTP_CF_CONNECTING_IP"];}$filename='loggedips.txt';$myfile=fopen($filename,"r

php - 正则表达式仅从文本中提取 IPv4 地址

我试图从给定的示例输入中仅提取IP地址,但它提取了一些文本。这是我的代码:$spfreccord="v=spf1include:amazonses.cominclude:nl2go.cominclude:smtproutes.cominclude:smtpout.comip4:46.163.100.196ip4:46.163.100.194ip4:85.13.135.76~all";$regexIpAddress='/ip[4|6]:([\.\/0-9a-z\:]*)/';preg_match($regexIpAddress,$spfreccord,$ip_match);var_dum

php - 我如何解决 dns_get_record 返回误报

我一直在尝试使用像dns_get_record($domain)这样的函数来检查域的有效性。问题是,如果它不是有效域,它会将其附加到我所在站点IP的域前面。我不能为此依赖任何gethostbyname、dns_get_record等函数,因为它们无法像我期望的那样工作。如果域不存在,我预计这些函数中的任何一个都会返回失败的结果。不是。我注意到使用“ping”命令与PHP函数执行相同的操作,但“host”命令按预期工作。我编写了一个C程序来使用gethostbyname,它按预期工作。与python'socket.gethostbyname'相同。他们都在查找无效域时失败。PHP函数发生

php - IPV4 与 IPV6 PHP 函数

我一直在阅读有关如何确定IP是IPv4还是IPv6的文章,对我来说很明显要查找的是是否有冒号。但是,您将拥有IPv4映射的IPv6地址和IPv4兼容的IPv6地址。在我看来,这些类型的地址既有冒号又有句点,所以与其寻找字符串开头是否没有::ffff的解决方案,不如这样做:functionisIPv6($ip){if(strpos($ip,":")!==false&&strpos($ip,".")===false){returntrue;}returnfalse;}编辑:我是不是遗漏了什么或者这个函数在所有情况下都能正常工作? 最佳答案

php - 不使用 gethostbyname 从 DNS 获取 IP?

PHP的gethostbyname()就超时而言,功能似乎不可配置。我想将DNS请求限制在1秒或更短时间,因为再出现问题时应该忽略。那么,有没有一种方法可以改用套接字或cURL进行DNS查询?我能够使用节省服务器资源的PHP流发出SMTP请求,所以我希望对DNS查询做同样的事情。 最佳答案 关于PHParticle的评论有一些设置/包括超时的选项:http://www.php.net/manual/en/function.gethostbyname.php#92870 关于php-不使用

php - 错误的 DNS 设置,php_network_getaddresses : getaddrinfo failed Name or service not known, nslookup

问题原来是这样的:Warning:file_get_contents()[function.file-get-contents]:php_network_getaddresses:getaddrinfofailed:Nameorservicenotknownin/home///ppk_hotweb.class.phponline58我也使用了cURL,它只是返回null,仅此而已。(文件和cURL)都已启用。尝试了file_get_contents('google.com')并且成功了!为什么file_get_contents('domain.com.au')不起作用?所以我开始阅读相

php - 如何测试 PHP 应用程序的 IPv6 兼容性?

我有一个现有的phpweb应用程序,我在IPv4上,我如何伪造IPv6地址来测试应用程序与它的兼容性?还是有更好的方法来测试IPv6兼容性?更新:我的应用程序在执行某些操作时记录用户的ip。IP地址存储在数据库中(从另一个问题我可以理解BINARY是最好的列类型)。该应用程序还应该可以通过IP进行搜索。我希望apache/php像使用IPv6一样工作,我需要确保我的应用程序与IPv6的兼容性已准备好在IPv4网络和IPv6网络上进行生产。 最佳答案 我同意Tonener;别担心,您的网站将在IPv6下正常运行。您也不必担心apach

php - Laravel 迁移 ip type ipv6 准备好了吗?

我需要将Ip保存在数据库中。我正在使用laravel但我需要存储IPv6和IPv4ipip类型准备好IP了吗?$table->ipAddress('visitor');或者我需要使用普通的字符串类型。谢谢 最佳答案 ipAddress()方法为指定的数据库创建以下字段类型:MySql-varchar(45)SQLServer-nvarchar(45)Postgres-inetSqlLite-varchar对于文本字段,存储IPv6地址所需的最大长度为45个字符,所以看起来MySql、SqlServer和SqlLite都考虑到了这一点

php dns 记录

当我在php脚本中使用dns_get_record获取域的DNS记录列表时,会返回一个记录列表。但是,如果我再次运行该脚本,它不会返回所有相同的结果(即它只返回名称服务器),然后如果我再次运行它,它就会工作等等。这是我使用的代码:$result=dns_get_record("php.net");print_r($result);是否有更好的功能或更可靠的查询DNS记录的方法?不工作:Array([0]=>Array([host]=>php.net[type]=>NS[target]=>remote2.easydns.com[class]=>IN[ttl]=>38772)[1]=>数组

email - spamassassin rdns 反向 DNS

Spamassasin在我的电子邮件中给出以下标记:*0.8RDNS_NONEDeliveredtointernalnetworkbyahostwithnorDNS"ThistestcheckstoseeifthereisareverseDNSentryforthelastuntrustedrelay.NotethatthismaybedonebyinterpretinginformationintherelevantReceivedheader-ifreverseDNSchecksarenotperformedbythefirsttrustedrelay,oriftheyarenot