从hao123.com上扒下来的邮箱登录
时间:2009年12月10日作者:simaopig评论次数:24
hao123.com是我接触到的第一个网站,当时年少无知的我问网管,上网都能干啥。看着网管不屑的眼神,有些小受伤。不过善良的网管还是告诉我,可以听音乐,可以聊天。可是音乐去哪找呢?网管继续不耐烦的说hao123啊
闲扯淡
当时,砍传奇之余自认为做的最伟大的两件事分别是:注册新浪邮箱,申请百度贴吧版主。现如今,最早注册的邮箱早就被封掉了(详见以前的文章),而百度贴吧的版主,因为高中毕业后来也被弄掉了,连那个吧现在也仍然无人注册~~
而当时登录邮箱主要就是在hao123.com,别问我为啥不去新浪登录,咱哪会啊?
闲话少说,今天正好要做邮箱部分的优化,决定还是抄一下hao123.com的吧。毕竟人家速度快,而且简单方便。
代码部分
代码如下,不加注释了,大家有能力的自己了解一下即可,无聊的飘过即可
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>模拟hao123邮箱登录</title>
<meta content="text/html; charset=gb2312" http-equiv="Content-Type"/>
<script type="text/javascript" src="mail.js"></script>
</head>
<body>
<form target="_blank" action="" onsubmit="MailLogin.sendMail();return false;" method="post" name="mail">
<table>
<tbody>
<tr><td nowrap="" width="30px">帐号</td><td colspan="2"><input type="text" value="" name="hao_mail_username" id="hao_mail_username"/></td></tr>
<tr><td>邮箱</td><td colspan="2"><select onchange="MailLogin.change(this)" id="hao_mail_options"><option>--请选择--</option><option>@163.com 网易</option><option>@126.com 网易</option><option>@sina.com 新浪</option><option>@yahoo.com.cn</option><option>@yahoo.cn</option><option>@sohu.com 搜狐</option><option>@tom.com</option><option>@188.com</option><option>@21cn.com</option><option>@yeah.net</option><option>百度帐号</option><option>ChinaRen校友录</option><option>人人网</option><option>51.com</option><option>--在弹出页登录--</option><option>@qq.com</option><option>@gmail.com</option><option>@hotmail.com</option><option>@139.com</option></select></td></tr>
<tr><td>密码</td><td><input type="password" style="width: 124px; padding-left: 2px;" value="" name="hao_mail_passwd" id="hao_mail_passwd"/></td><td><button type="submit" style="padding: 0px; height: 1.67em; width: 3.4em; line-height: 1.67em; vertical-align: middle;">登录</button></td></tr>
</tbody>
</table>
</form>
</body>
</html>
<html>
<head>
<title>模拟hao123邮箱登录</title>
<meta content="text/html; charset=gb2312" http-equiv="Content-Type"/>
<script type="text/javascript" src="mail.js"></script>
</head>
<body>
<form target="_blank" action="" onsubmit="MailLogin.sendMail();return false;" method="post" name="mail">
<table>
<tbody>
<tr><td nowrap="" width="30px">帐号</td><td colspan="2"><input type="text" value="" name="hao_mail_username" id="hao_mail_username"/></td></tr>
<tr><td>邮箱</td><td colspan="2"><select onchange="MailLogin.change(this)" id="hao_mail_options"><option>--请选择--</option><option>@163.com 网易</option><option>@126.com 网易</option><option>@sina.com 新浪</option><option>@yahoo.com.cn</option><option>@yahoo.cn</option><option>@sohu.com 搜狐</option><option>@tom.com</option><option>@188.com</option><option>@21cn.com</option><option>@yeah.net</option><option>百度帐号</option><option>ChinaRen校友录</option><option>人人网</option><option>51.com</option><option>--在弹出页登录--</option><option>@qq.com</option><option>@gmail.com</option><option>@hotmail.com</option><option>@139.com</option></select></td></tr>
<tr><td>密码</td><td><input type="password" style="width: 124px; padding-left: 2px;" value="" name="hao_mail_passwd" id="hao_mail_passwd"/></td><td><button type="submit" style="padding: 0px; height: 1.67em; width: 3.4em; line-height: 1.67em; vertical-align: middle;">登录</button></td></tr>
</tbody>
</table>
</form>
</body>
</html>
function G($){return document.getElementById($)}
function trim($){$=$.replace(/(^\u3000+)|(\u3000+$)/g,"");$=$.replace(/(^ +)|( +$)/g,"");return $}
function C($) {
return document.createElement($)
}
function Ci(_, A) {
var $ = C("input");
$.name = _;
$.value = A;
$.type = "hidden";
return $
}
var format = function(_, B) {
if (arguments.length > 1) {
var F = format,
H = /([.*+?^=!:${}()|[\]\/\\])/g,
C = (F.left_delimiter || "{").replace(H, "\\$1"),
A = (F.right_delimiter || "}").replace(H, "\\$1"),
E = F._r1 || (F._r1 = new RegExp("#" + C + "([^" + C + A + "]+)" + A, "g")),
G = F._r2 || (F._r2 = new RegExp("#" + C + "(\\d+)" + A, "g"));
if (typeof(B) == "object") {
return _.replace(E,function(_, A) {
var $ = B[A];
if (typeof $ == "function") $ = $(A);
return typeof($) == "undefined" ? "": $
}
);
} else if (typeof(B) != "undefined") {
var D = Array.prototype.slice.call(arguments, 1),
$ = D.length;
return _.replace(G,
function(A, _) {
_ = parseInt(_, 10);
return (_ >= $) ? A: D[_];
})
}
}
return _;
}
var Config = {
MailConfig: [
{
val: 0
},
{
action: "http://reg.163.com/CheckUser.jsp",
params: {
url: "http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1&language=-1&style=15",
username: "#{u}",
password: "#{p}"
}
},
{
action: "https://reg.163.com/logins.jsp",
params: {
domain: "126.com",
username: "#{u}@126.com",
password: "#{p}",
url: "http://entry.mail.126.com/cgi/ntesdoor?lightweight%3D1%26verifycookie%3D1%26language%3D0%26style%3D-1"
}
},
{
action: "http://mail.sina.com.cn/cgi-bin/login.cgi",
params: {
u: "#{u}",
psw: "#{p}"
}
},
{
action: "https://edit.bjs.yahoo.com/config/login",
params: {
login: "#{u}@yahoo.com.cn",
passwd: "#{p}",
domainss: "yahoo",
".intl": "cn",
".src": "ym"
}
},
{
action: "https://edit.bjs.yahoo.com/config/login",
params: {
login: "#{u}@yahoo.cn",
passwd: "#{p}",
domainss: "yahoocn",
".intl": "cn",
".done": "http://mail.cn.yahoo.com/inset.html"
}
},
{
action: "http://passport.sohu.com/login.jsp",
params: {
loginid: "#{u}@sohu.com",
passwd: "#{p}",
fl: "1",
vr: "1|1",
appid: "1000",
ru: "http://login.mail.sohu.com/servlet/LoginServlet",
ct: "1173080990",
sg: "5082635c77272088ae7241ccdf7cf062"
}
},
{
action: "http://login.mail.tom.com/cgi/login",
params: {
user: "#{u}",
pass: "#{p}"
}
},
{
action: "http://reg.mail.188.com/servlet/coremail/login?language=0&style=1",
params: {
user: "#{u}",
pass: "#{p}"
}
},
{
action: "http://passport.21cn.com/maillogin.jsp",
params: {
UserName: "#{u}@21cn.com",
passwd: "#{p}",
domainname: "21cn.com"
}
},
{
action: "https://reg.163.com/logins.jsp",
params: {
domain: "yeah.net",
username: "#{u}@yeah.net",
password: "#{p}",
url: "http://entry.mail.yeah.net/cgi/ntesdoor?lightweight%3D1%26verifycookie%3D1%26style%3D-1"
}
},
{
action: "http://passport.baidu.com/?login",
params: {
u: "http://passport.baidu.com/center",
username: "#{u}",
password: "#{p}"
}
},
{
action: "http://passport.sohu.com/login.jsp",
params: {
loginid: "#{u}@chinaren.com",
passwd: "#{p}",
fl: "1",
vr: "1|1",
appid: "1005",
ru: "http://profile.chinaren.com/urs/setcookie.jsp?burl=http://alumni.chinaren.com/",
ct: "1174378209",
sg: "84ff7b2e1d8f3dc46c6d17bb83fe72bd"
}
},
{
action: "http://passport.renren.com/PLogin.do",
params: {
email: "#{u}",
password: "#{p}"
}
},
{
action: "http://passport.51.com/login.5p",
params: {
passport_51_user: "#{u}",
passport_51_password: "#{p}",
gourl: "http%3A%2F%2Fmy.51.com%2Fwebim%2Findex.php"
}
},
{
val: 0
},
{
action: "http://mail.qq.com",
type: "link"
},
{
action: "http://gmail.google.com",
type: "link"
},
{
action: "http://www.hotmail.com",
type: "link"
},
{
action: "http://mail.139.com",
type: "link"
}
]
}
var MailLogin={
mailCache:[],
sendMail:function()
{
var B=G("hao_mail_username").value;
var C=G("hao_mail_passwd").value;
var E=G("hao_mail_options");
var A=document.mail;
var _=E.selectedIndex;
var H=Config.MailConfig[_];
var F={u:B,p:C};
if(H.val==0){alert("\u60a8\u6ca1\u6709\u9009\u62e9\u90ae\u7bb1\uff01");return}
if(trim(F.u)==""){alert("\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01");return}
if(trim(F.p)==""){alert("\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01");return}
if(this.mailCache.index!=_){
this.mailCache.index=_;
for(var I=0,D=this.mailCache.length;I<D;I++)
{
A.removeChild(this.mailCache[I]);
}
this.mailCache=[]
}
A.action=H.action;
for(I in H.params){
var $=Ci(I,format(H.params[I],F));
this.mailCache.push($);
A.appendChild($)
}
A.submit();
G("hao_mail_passwd").value=""
},
change:function(_){
var $=Config.MailConfig[_.selectedIndex];
if($.type=="link"){
window.open($.action);
_.selectedIndex=15
}
}
}
function trim($){$=$.replace(/(^\u3000+)|(\u3000+$)/g,"");$=$.replace(/(^ +)|( +$)/g,"");return $}
function C($) {
return document.createElement($)
}
function Ci(_, A) {
var $ = C("input");
$.name = _;
$.value = A;
$.type = "hidden";
return $
}
var format = function(_, B) {
if (arguments.length > 1) {
var F = format,
H = /([.*+?^=!:${}()|[\]\/\\])/g,
C = (F.left_delimiter || "{").replace(H, "\\$1"),
A = (F.right_delimiter || "}").replace(H, "\\$1"),
E = F._r1 || (F._r1 = new RegExp("#" + C + "([^" + C + A + "]+)" + A, "g")),
G = F._r2 || (F._r2 = new RegExp("#" + C + "(\\d+)" + A, "g"));
if (typeof(B) == "object") {
return _.replace(E,function(_, A) {
var $ = B[A];
if (typeof $ == "function") $ = $(A);
return typeof($) == "undefined" ? "": $
}
);
} else if (typeof(B) != "undefined") {
var D = Array.prototype.slice.call(arguments, 1),
$ = D.length;
return _.replace(G,
function(A, _) {
_ = parseInt(_, 10);
return (_ >= $) ? A: D[_];
})
}
}
return _;
}
var Config = {
MailConfig: [
{
val: 0
},
{
action: "http://reg.163.com/CheckUser.jsp",
params: {
url: "http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1&language=-1&style=15",
username: "#{u}",
password: "#{p}"
}
},
{
action: "https://reg.163.com/logins.jsp",
params: {
domain: "126.com",
username: "#{u}@126.com",
password: "#{p}",
url: "http://entry.mail.126.com/cgi/ntesdoor?lightweight%3D1%26verifycookie%3D1%26language%3D0%26style%3D-1"
}
},
{
action: "http://mail.sina.com.cn/cgi-bin/login.cgi",
params: {
u: "#{u}",
psw: "#{p}"
}
},
{
action: "https://edit.bjs.yahoo.com/config/login",
params: {
login: "#{u}@yahoo.com.cn",
passwd: "#{p}",
domainss: "yahoo",
".intl": "cn",
".src": "ym"
}
},
{
action: "https://edit.bjs.yahoo.com/config/login",
params: {
login: "#{u}@yahoo.cn",
passwd: "#{p}",
domainss: "yahoocn",
".intl": "cn",
".done": "http://mail.cn.yahoo.com/inset.html"
}
},
{
action: "http://passport.sohu.com/login.jsp",
params: {
loginid: "#{u}@sohu.com",
passwd: "#{p}",
fl: "1",
vr: "1|1",
appid: "1000",
ru: "http://login.mail.sohu.com/servlet/LoginServlet",
ct: "1173080990",
sg: "5082635c77272088ae7241ccdf7cf062"
}
},
{
action: "http://login.mail.tom.com/cgi/login",
params: {
user: "#{u}",
pass: "#{p}"
}
},
{
action: "http://reg.mail.188.com/servlet/coremail/login?language=0&style=1",
params: {
user: "#{u}",
pass: "#{p}"
}
},
{
action: "http://passport.21cn.com/maillogin.jsp",
params: {
UserName: "#{u}@21cn.com",
passwd: "#{p}",
domainname: "21cn.com"
}
},
{
action: "https://reg.163.com/logins.jsp",
params: {
domain: "yeah.net",
username: "#{u}@yeah.net",
password: "#{p}",
url: "http://entry.mail.yeah.net/cgi/ntesdoor?lightweight%3D1%26verifycookie%3D1%26style%3D-1"
}
},
{
action: "http://passport.baidu.com/?login",
params: {
u: "http://passport.baidu.com/center",
username: "#{u}",
password: "#{p}"
}
},
{
action: "http://passport.sohu.com/login.jsp",
params: {
loginid: "#{u}@chinaren.com",
passwd: "#{p}",
fl: "1",
vr: "1|1",
appid: "1005",
ru: "http://profile.chinaren.com/urs/setcookie.jsp?burl=http://alumni.chinaren.com/",
ct: "1174378209",
sg: "84ff7b2e1d8f3dc46c6d17bb83fe72bd"
}
},
{
action: "http://passport.renren.com/PLogin.do",
params: {
email: "#{u}",
password: "#{p}"
}
},
{
action: "http://passport.51.com/login.5p",
params: {
passport_51_user: "#{u}",
passport_51_password: "#{p}",
gourl: "http%3A%2F%2Fmy.51.com%2Fwebim%2Findex.php"
}
},
{
val: 0
},
{
action: "http://mail.qq.com",
type: "link"
},
{
action: "http://gmail.google.com",
type: "link"
},
{
action: "http://www.hotmail.com",
type: "link"
},
{
action: "http://mail.139.com",
type: "link"
}
]
}
var MailLogin={
mailCache:[],
sendMail:function()
{
var B=G("hao_mail_username").value;
var C=G("hao_mail_passwd").value;
var E=G("hao_mail_options");
var A=document.mail;
var _=E.selectedIndex;
var H=Config.MailConfig[_];
var F={u:B,p:C};
if(H.val==0){alert("\u60a8\u6ca1\u6709\u9009\u62e9\u90ae\u7bb1\uff01");return}
if(trim(F.u)==""){alert("\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01");return}
if(trim(F.p)==""){alert("\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01");return}
if(this.mailCache.index!=_){
this.mailCache.index=_;
for(var I=0,D=this.mailCache.length;I<D;I++)
{
A.removeChild(this.mailCache[I]);
}
this.mailCache=[]
}
A.action=H.action;
for(I in H.params){
var $=Ci(I,format(H.params[I],F));
this.mailCache.push($);
A.appendChild($)
}
A.submit();
G("hao_mail_passwd").value=""
},
change:function(_){
var $=Config.MailConfig[_.selectedIndex];
if($.type=="link"){
window.open($.action);
_.selectedIndex=15
}
}
}
演示地址
演示地址,小小子不记你密码的。嗯。。
声明: 本文采用 BY-NC-SA 协议进行授权 | 小小子
转载请注明转自《从hao123.com上扒下来的邮箱登录》
发表评论
我登了新浪邮箱
[回复]
@JasonChao
呃,呵呵,谢谢捧场啊。。
[回复]
这个不错
话说你是不是做Web前端的啊
[回复]
@alswl
网上有很多类似的东西,不过我这个是完全从hao123上扒下来的,绝对原汁原味,呵呵。
PS:我前端后端都搞,PHP,JS都得会。。不过现在想进前端组,专心搞一个。呵呵。
[回复]
网上早有很多快速登录入口的代码了,不过在代码简洁方面上hao123的确是最好的
[回复]
@bolo
是的,里面有很多值得借鉴的地方。
我最欣赏的就是这里的format函数。呵。
[回复]
嗯 这个好像不错啊 有空试试看
[回复]
呵呵,我曾经研究过,为什么HAO123的163可以登陆,而大部分其他的网址导航站却登陆不了,最后也知道了原因,现在也放在我的网站上面了,http://www.pig123.com
[回复]
@Cherry
咦,你自己的导航站啊?不错不错。呵呵。
[回复]
@Louis Han
欢迎试用。呵呵。
[回复]
@simaopig
用的别人的模板,为了练习PHP写的程序,可是一点也没有优化,还要找你学习经验哈哈
[回复]
@Cherry
晕死,练习PHP用网址导航,服了你了。强悍,呵呵。
[回复]
我都忘记hao123的首页啥样了
[回复]
我的主页就是123,我感觉不错,我记性不好,123对我来说很适用
[回复]
直接把你的demo另存为了
[回复]
163的貌似不行呢,无法登录:
警告:系统检查到您可能通过不安全的网站登录,请您登录后立即修改密码!
[回复]
楼主,不行啊,提示不安全呢!
[回复]
@张三李四
hi,个别邮箱只有在新窗口登录才行哦。比如:QQ,Gmail,都只会打开登录页面的。。
多试几个,如果都不行,你再联系我,
[回复]
@simaopig
163也不行啊!
[回复]
@张三李四
hi,126和163都是网易的邮箱,这两个限制的比较狠。刚才通过楼上 Cherry 同学的代码,发现只能经过php的一层跳转后貌似才可以,但是这个实在懒的研究了。
另外。发现无论是265还是360,这些导航站应该都和网易等这些公司有合作关系,其都有自己独特的参数,比如说265登录163邮箱时,有私有参数是MailBox_265,而360的则是MailBox,这些参数的值应该也是有意义的。
[回复]