PHP gets 163, gmail, 126 and other email contact addresses [tested 2009.10.10]_PHP tutorial
WBOYOriginal
2016-07-21 15:44:061011browse
I found some on the Internet, most of them have expired, so I reorganized them; I specially released the code of 126, 163 is easier to grab; 126 is a bit perverted and has an extra jump, which is more troublesome
Copy code The code is as follows:
/** * @file class.126http.php * Get 126 email address book list * @author jvones http://www.jvones.com/blog * @date 2009-09-26 **/ class http126 { private function login($username, $password) { //First step: initial login $cookies = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL , "https://reg.163.com/logins.jsp?type=1&product=mail126&url=http://entry.mail.126.com/cgi/ntesdoor?hid%3D10010102%26lightweight%3D1%26verifycookie%3D1% 26language%3D0%26style%3D-1"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "username=".$username."@126.com&password=" .$password); curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR); curl_setopt($ch,CURLOPT_HEADER,1); curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT); curl_setopt($ ch, CURLOPT_RETURNTRANSFER, true); $str = curl_exec($ch); //file_put_contents('./126result.txt', $str); curl_close($ch); //Get the redirect_url jump address, which can be viewed from 126result.txt, and match the address in the $str return stream through regular expressions preg_match("/replace("(.*?)");/", $str , $mtitle); $_url1 = $mtitle[1]; //file_put_contents('./126resulturl.txt', $redirect_url); //Step 2: Jump to again Above $_url1 $ch = curl_init($_url1); curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch,CURLOPT_COOKIEFILE ,COOKIEJAR); curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR); curl_setopt($ch,CURLOPT_HEADER,1); $str2 = curl_exec($ch); curl_close($ch) ; if (strpos($contents, "Safe Exit") !== false) { return 0; } return 1; } /* * * Get email address book-address * @param $user * @param $password * @param $result * @return array */ public function getAddressList($username, $password) { if (!$this->login($username, $password)) { return 0; } $header = $this->_getheader($username); if (!$header['sid']) { return 0; } //Test to find out sid (very important) and host //file_put_contents('./host.txt', $header['host']); //file_put_contents('. /sid.txt', $header['sid']); //Start to simulate crawling $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http:// ".$header['host']."/a/s?sid=".$header['sid']."&func=global:sequential"); curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/xml")); $str = " object>user:getSignaturespab:getAllGroups< ;/object>"; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $str); curl_setopt($ch , CURLOPT_TIMEOUT, TIMEOUT); ob_start(); curl_exec($ch); $contents = ob_get_contents(); ob_end_clean(); curl_close($ch); //get mail list from the page information username && emailaddress preg_match_all("/(.*)/Umsi",$contents,$ mails); preg_match_all("/(.*)/Umsi",$contents,$names); $users = array() ; foreach($names[1] as $k=>$user) { //$user = iconv($user,'utf-8','gb2312'); $users[$mails[1][$k]] = $user; } if (!$users) { return 'There is no contact in your mailbox yet'; } return $users; } /** * Get Header info */ private function _getheader($username) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://entry.mail.126.com/cgi/ntesdoor?hid=10010102&lightweight=1&verifycookie=1&language=0&style=-1&username=".$username."@126.com"); curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIEJAR); //当前使用的cookie curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIEJAR); //服务器返回的新cookie curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_NOBODY, true); $content=curl_exec($ch); preg_match_all('/Location:s*(.*?)rn/i',$content,$regs); $refer = $regs[1][0]; preg_match_all('/http://(.*?)//i',$refer,$regs); $host = $regs[1][0]; preg_match_all("/sid=(.*)/i",$refer,$regs); $sid = $regs[1][0]; curl_close($ch); return array('sid'=>$sid,'refer'=>$refer,'host'=>$host); } } ?>
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn