我想从网站网址链接中找到网站电子邮件地址(如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表达式查找电子邮件地址。
有可能吗?
答案 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)