首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php regex模式从spf记录中提取域子域

问使用php regex模式从spf记录中提取域子域
EN

Stack Overflow用户
提问于 2016-08-07 18:59:06
回答 2查看 634关注 0票数 0

我想使用regex php从spf记录中提取子域和域名。

代码语言:javascript
复制
$spfreccord= ' v=spf1 include:smtproutes.com include:smtpout.com ip4:46.163.100.196 ip4:46.163.100.194 ip4:85.13.135.76 ip4:178.255.156.110 ip4:188.172.204.21 ip4:178.255.154.52 ip4:188.172.233.6 ip4:37.252.230.29 ip4:217.146.22.37 ~all';
spfreccord2="v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all";
$regexdomain = '/\s*([-a-z0-9]+\.)+' . implode("|", $extensionList) . '\s*/i';
preg_match_all($regexdomain, $spfreccord,$matchesdom);
// echo the result



foreach ($matchesdom as $ke) {
foreach ($ke as $domspf) {

    echo $domspf;
    echo "<br>";
}
}

我应该使用哪种正则表达式来提取简单的域和子域,如_netblocks.google.com

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-07 22:28:34

我听不清你在问什么。但我认为你需要的是:

代码语言:javascript
复制
$spfreccord ='v=spf1 include:smtproutes.com include:smtpout.com ip4:46.163.100.196 ip4:46.163.100.194 ip4:85.13.135.76 ip4:178.255.156.110 ip4:188.172.204.21 ip4:178.255.154.52 ip4:188.172.233.6 ip4:37.252.230.29 ip4:217.146.22.37 ~all';
$spfreccord2 ="v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all";

$domainExts = ["com", "net", "org", "io"]; // fill according to your needs

$regex = "/:([\w]*?)\\.?([\w]*?)\\.(".implode("|", $domainExts).")/";

preg_match_all($regex, $spfreccord2, $output);
// $output[1] => Subdomains.
// $output[2] => Domains
// $output[3] => Domain extension

var_dump($output);
/*
array(4) {
  [0] =>
  array(3) {
    [0] =>
    string(22) ":_netblocks.google.com"
    [1] =>
    string(23) ":_netblocks2.google.com"
    [2] =>
    string(23) ":_netblocks3.google.com"
  }
  [1] =>
  array(3) {
    [0] =>
    string(10) "_netblocks"
    [1] =>
    string(11) "_netblocks2"
    [2] =>
    string(11) "_netblocks3"
  }
  [2] =>
  array(3) {
    [0] =>
    string(6) "google"
    [1] =>
    string(6) "google"
    [2] =>
    string(6) "google"
  }
  [3] =>
  array(3) {
    [0] =>
    string(3) "com"
    [1] =>
    string(3) "com"
    [2] =>
    string(3) "com"
  }
}
*/
票数 2
EN

Stack Overflow用户

发布于 2016-08-07 19:10:51

代码语言:javascript
复制
      preg_match_all('/(ftp|http|https):\/\/(.*?)[\.][a-zA-Z]{1,3}(.*?)/',$str_search,$arr,PREG_PATTERN_ORDER);
print_r($arr);

域名:$arr;子域:$arr2;

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38813425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档