从网址网址

时间:2016-09-27 11:56:33

标签: php curl

我想从网站网址链接中找到网站电子邮件地址(如name@example.com)。
那么,是否可以从网站网址找到电子邮件地址?
如果是,请分享如何实施。
语言不是必需的。

  

根据我的观点,
  如果我们使用CURL从网站网址阅读内容,和   使用正则表达式查找他们的电子邮件地址   有可能吗?

使用CURL从网址网址中查找网页内容的下方代码:

<?php
$url = 'yoururl';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$data = curl_exec($curl);
curl_close($curl);

然后使用$ data string中的regex表达式查找电子邮件地址。

  

有可能吗?

2 个答案:

答案 0 :(得分:3)

从技术上讲,您可以通过查询公共WHOIS信息(可以通过查询API来获取)从域中获取电子邮件地址,但公布的电子邮件地址很少是公司真正的电子邮件地址,而是报告垃圾邮件或技术请求的邮箱。

http://network-tools.com/default.asp?prog=network&host=www.google.com

返回JSON输出的一些示例代码:

<?php

function getIP() {

   if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
     $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
             $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
     $ip = $_SERVER['REMOTE_ADDR'];
    }

    return chkIP($ip);

}

function chkIP($ip) {

     $dirtydomain = gethostbyaddr($ip);
     preg_match("/((\w*)\.+(\w{2})\.+(\w{2})$)|((\w*)\.+(\w{3})$)/", $dirtydomain, $output_array);
     $cmd = 'whois ' . $output_array[0];
     $data = shell_exec($cmd);

     return getEmail($data,$output_array[0]);

}


function getEmail($data,$domain) {

    $array = preg_split('/( )|(\n)/',$data); //DATA from WHOIS

        foreach ($array as $value) {

            if (strpos($value, '@') == TRUE) {

                    $emailArray[] = $value;

            } 
        }

        return outputArray($emailArray,$domain);
}



function outputArray($emailArray, $domain) {

        if (count($emailArray) < 1) {

           return json_encode("No Email Address Found for " . $domain);

        } else {

           return json_encode($emailArray);

        }

}

getIP(); //Will Return JSON Output


?>

答案 1 :(得分:2)

我头顶的简单正则表达式。

preg_match_all("/([a-z0-9\.]{1,50}@[a-z0-9]{1,50}\.[a-z]{1,5})/ims",$data,$matches)