万能域名抢注机

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8696|回复: 0

4.3、软件使用之设置POST接口及变量(以新网api为例)

[复制链接]

3

主题

3

帖子

25

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
25
发表于 2013-9-9 13:13:14 | 显示全部楼层 |阅读模式
本部分讲解一下如何根据api文档,设置变量内容,本来想用22的api作为范例的,结果文档找不到了(本人并不是22的分销商),所以找了一个N年前的新网的api文档作为示例。下面摘录api文档中注册部分,如以下代码:
  1.    3.2  Register 接口
  2.        POST 地址: http://www.paycenter.com.cn/cgi-bin/Register
  3.        POST 参数:
  4.               [域名信息]
  5.                 dn        域名;1个,包括名字和后缀
  6.                 enc       编码,E,G;1个;
  7.                 client    代理号;1个
  8.                 checksum  MD5加密摘要
  9.                 period    注册年数;[如果不填默认为1年],有效值1-10年
  10.                 url       URL转发[通用网址需要,如果不填默认为www.xinnet.com]

  11.               [注册所有人或注册单位的信息]

  12.                 uname1 注册人中文单位名称                [必须]
  13.                 uname2 注册人英文单位名称                [必须]------------------- 必须英文,且中间有一个空格
  14.                 uname3 注册单位拼音                    [.中国\通用网址必须] ---------- 必须为字母
  15.                 uname4 注册单位缩写                    [.中国\通用网址必须] ----------
  16.                 location 注册人单位所在地                [注册.中国\通用网址必须]
  17.                 rname1 注册人|单位负责人中文名称            [国内域名必须]
  18.                 rname2 注册人|单位负责人英文名称            [国际域名必须]
  19.                 ust    注册人英文国家名称                 两个字母[CN表示中国],接口自动翻译中文
  20.                 uprov  注册人英文省份名称                 如:Beijing,接口自动翻译中文
  21.                 ucity1 注册人中文城市名称                [国内域名必须]
  22.                 ucity2 注册人英文城市名称                [国际域名必须]
  23.                 uaddr1 注册人中文地址                    [国内域名必须]
  24.                 uaddr2 注册人英文地址                    [国际域名必须]
  25.                 uzip   注册人邮政编码                    [必须]
  26.                 utelc  注册人电话国家码,                可以不填默认为86
  27.                 utela  注册人电话区号                    如果为手机可以不填,此项不可为0
  28.                 uteln  注册人电话号码
  29.                 utele  注册人电话分机
  30.                 ufaxc  注册人传真国家码,                可以不填默认为86
  31.                 ufaxa  注册人传真区号                    如果为手机可以不填,此项不可为0
  32.                 ufaxn  注册人传真号码                    必须为数字
  33.                 ufaxe  注册人传真分机
  34.                 uemail 注册人email地址
  35.                 trade  注册人所在行业英文编码                [如果不填,默认为商业S8]//此字段最好不填,如果填写,千万不能用小写S
  36.                 [域名管理联系人信息]                    管理联系人单位地址信息和注册人信息一致,所以不用填写
  37.                 aname1 管理联系人中文名称                [国内域名必填]
  38.                 aname2 管理联系人英文名称                [国际域名必填]
  39.                 atelc  管理联系人电话国家码                可以不填默认为86
  40.                 atela  管理联系人电话区号                如果为手机可以不填
  41.                 ateln  管理联系人电话号码
  42.                 atele  管理联系人电话分机                可以不填,此项不可为0
  43.                 afaxc  管理联系人传真国家码,可以不填默认为86
  44.                 afaxa  管理联系人传真区号,如果为手机可以不填        可以不填,此项不可为0
  45.                 afaxn  管理联系人传真号码
  46.                 afaxe  管理联系人传真分机               
  47.                 aemail 管理联系人电子邮件地址                [必须]
  48.                 说明:管理联系人和注册人的电话和传真必须保证一份为填写完整的。
  49.                 否则,如果管理联系人电话传真缺少,将使用注册人的电话传真
  50.                 如果注册人电话传真缺少,将使用管理联系人的电话传真
  51.                 如果注册人没有email地址,将使用管理联系人的email地址

  52. POST 数据,都必须进行URL编码,否则中文信息将不正确

  53.                 验证:client和POST的来源IP必须与该代理填写的地址一致

  54.                   checksum=MD5("Register"+client+password+dn+aemail+unit2)
  55.                   "Register"为字符串常量,表示接口名称。
  56.                   其他没有引号表示为POST参数变量,password为代理专区中设置的认证密码
  57.                   client为客户号,dn为域名,aemail为管理联系人电子邮件,unit2为注册单位英文名称
复制代码
下面逐条说明:
  • POST 地址: http://www.paycenter.com.cn/cgi-bin/Register,因为是post方式发送,所以不需要对接口地址进行其他设置,直接将地址贴上去即可,注意请求模式必需选为post,否则会出错。
    QQ截图20130909131811.jpg
    另外需要注意的是文档里已明确提示:“POST 数据,都必须进行URL编码,否则中文信息将不正确”,所以必须选中“使用utf-8编码发送”,返回信息是否为utf-8编码,根据实际情况选择即可,这个即使选错了,顶多是api接口返回的信息是乱码,并不影响你注册成功与否,自已设置一两次就能试出来了。
  • 然后参照接口说明,把一些常规信息都写在固定内容框里,如以下代码及截图:
    1. action===Register
    2. client===agent123
    3. aemail===caozh@xinnet.com
    4. enc===E
    5. uname1===北京新网数码信息技术有限公司
    6. uname2===Xin Net Technology Corp.
    7. rname1===测试
    8. rname2===test one
    9. uaddr1===北京亦庄经济技术开发区北工大软件园2号楼1层
    10. uaddr2===1st Floor,2nd Building Section A,BDA BeiGongDa Software Area, Beijing
    11. ust===cn
    12. uprov===Beijing
    13. ucity1===北京
    14. ucity2===Bejing
    15. uzip===100176
    16. utela===010
    17. uteln===58022118
    18. ufaxa===010
    19. ufaxn===58022118
    20. uemail===caozh@xinnet.com
    21. aname1===曹中会
    22. aname2===Cao Zhonghui
    23. atela===010
    24. ateln===58022118
    25. afaxa===010
    26. afaxn===58022118
    复制代码
    这个文本框叫固定内容,意思就是它里面的变量的值是固定的,不变的,所以适合填写联系人信息等不变的内容;但比如这个变量的值是变化的,你就要考虑将这个变量放在动态内容框里。
    注意变量名必须和接口规范完全一致,变量值和变量名之间用三个半角等号“===”分隔。另外需要说明的是,如果不是必须填写的话,可以不写,只要能注册成功就成,当然把信息都写上也没问题。
    QQ截图20130909133009.jpg
  • 动态内容:这个提供了两个文本框,分别是动态内容1和动态内容2,在使用中只用一个、或两个都用、或两个都不用,以及使用顺序等都随意。动态内容里适合放每次值都不一样的变量,或者需要循环的变量,也可以是一组变量,在使用中程序每次从中提取一行,按照从上至下的顺序循环。我们举例说明:
    a、比如我们想循环抢注三个域名,就可以按以下方式设置,注意本程序现在是单线程,只能循环查询/抢注,不能并发:
    1. dn===domain-capture.com
    2. dn===baidu.com
    3. dn===domain.cn
    复制代码
    b、再比如我们还是循环抢注那三个域名,而且要每个域名对应一个注册人,可以按以下方式设置,需要注意的是,因为固定内容里已经注册人这个变量,如果把注册人这个变量移动动态内容中,需要在固定内容里删除这个变量,否则变量就重复了:
    1. dn===domain-capture.com|||uname1===张三
    2. dn===baidu.com|||uname1===李四
    3. dn===domain.cn|||uname1===抢注机
    复制代码
    这样,每一行其实是一个变量组,同时使用
    c、如果我们想给每个域名指定一个分销商帐号和密码呢,按以下方式设置:
    1. dn===domain-capture.com|||client===张三|||password===123456
    2. dn===baidu.com|||client===李四|||password===123456
    3. dn===domain.cn|||client===抢注机|||password===123456
    复制代码
    d、注意,变量名不管在哪里出现,不要有重复。动态内容的截图如下:
    QQ截图20130909134755.jpg
  • 时间变量:这个是以前铭万的api里会用到的,就一直保留了,现在不知还用的多不多了,铭万的api要求每次还提交一个时间变量过去,那会还没有whois模式,他们也没限api,所以如果一秒内发多个请求过去,时间不就全一样了吗,所以出现了这个时间变量,它会虚拟出时间来,保证每次发出去的都不相同,设置好对应的时间格式和时间变量名就行了,在whois模式下,应该没什么太大用了。
  • 域名变量名:这个很重要,这是告诉程序,哪个变量名是保存域名的,系统要用这个变量名的值去进行whois查询,如果这个变量是个动态的变量,则循环这个变量去进行whois查询,如果按照上面动态内容的示例,我们设为dn即可,如下图所示,这个变量在抢注模式下没作用。
    QQ截图20130909140144.jpg
  • md5变量组:这玩意没学过编程的同学可能会晕,md5是一个加密算法,api接口验证用户的合法性,基本都使用md5值进行匹配了。
    比如上面的示例,新网是这么要求的:checksum=MD5("Register"+client+password+dn+aemail+uname2),"Register"是一个字符串,是死的;client是变量,代表用户名,我们假设值是“agent12345”;password代表用户密码,我们假设值是“123456”;dn代表域名,我们假设值是“domain-capture.com”;aemail代表注册人email地址,假设值是“domain@capture.com”;uname2代表注册人英文,给它个假设值“bush”。最后需要加密的明文就是Register+agent12345+123456+domain-capture.com+domain@capture.com+bush = Registeragent12345123456domain-capture.comdomain@capture.combush,然后把这一串文字进行md5加密,生成一个16位或32位的密文,发送给服务器,服务器端也会根据你传来的信息以及你设置的密码,生成一串明文,也进行一次md5加密,然后两边比对,密文值相同,则认为你是合法访问。
    刚说了这么多,其实这个地方就是写md5计算公式的,我们先来看看新网的md5公式在程序里怎么设置,如下:"Register"+client+"123456"+dn+aemail+uname2
    半角引号括起来的就代表字符串,其它的就代表是变量,要确保变量在固定内容或动态内容已经定义。
    现在api接口的md5公式越来越复杂了,刚才新网那个算简单的,我们来看看22的这个md5变量是怎么要求的:sign = md5(md5(userid)+md5(pwd)+md5(domainname)),里面有md5嵌套,如果在程序里设置,写法如下:
    {{{userid}}}+{{{pwd}}}+{{{domainname}}},三对大括号括起的变量会先进行md5计算,然后将结果组合,再进行md5计算,最后得出sign变量的值,这里就非常灵活了,可以进行多种组合了,常量,md5(常量),变量,md5(变量),基本可以应付现在的需要了,在公式的左边还附带了一个简单的md5计算器,用于临时计算md5值使用。这里再多说几句关于md5变量的设置,这次我们拿中国数据的api为例,因为他的md5验证比较有代表性,而且用到了大部分类型,我们先看api规范相关内容,如下图所示,md5变量名是checkSum,计算规则是,md5(u_name+u_pass+act+checkTime),其中,u_name是会员名(固定内容变量);u_pass是将会员密码进行16位MD5加密后的结果;act是操作符(固定内容变量),checkTime时间字符串(为时间变量,将当前时间转换为如下格式的数字串:yyyyMMddHHmmss),下面我们来写md5公式:
    1、u_name直接写变量名即可;
    2、u_pass是密码进行16位md5加密后的值,因为程序本身没有这个功能,所以这里先用程序附带的md5计算器,算出这个值,然后以字符常量写在公式里就行了,如图所示,这里还须提醒一下,常量在md5公式中的表示方法是半角双引号,即"domain-capture",而且常量是不支持md5嵌套的写法的,比如这样写是不对的{{{"domain-capture"}}},遇到这种情况,直接先计算出md5值,然后以常量方式表示即可;
    3、act直接写变量名即可;
    4、checkTime是时间变量,在程序中也有专门的地方设置,我们要做的就是写好时间变量名,然后设置正确的时间格式即可,抢注过程中,程序会自动生成当前时间,并转换成你指定的格式,赋值给变量,很方便吧,如图所示。

    最终的结果就是:checkSum=md5(u_name+"49ba59abbe56e057"+act+checkTime),效果如图所示。

    QQ截图20131012131726.jpg
    api规则

    QQ截图20131012132506.jpg
    md5计算器

    QQ截图20131012133229.jpg
    时间变量设置


    最终效果

最后,需要注意的是:
  • 设置变量要严格参考api说明,差一点都不行;
  • 变量名不要设置重复;
  • 动态变量多行间格式要统一;
  • md5公式中用到的变量要在固定内容或动态内容中存在;
  • 程序提交前会进行基本的变量检查,有明显的错误,会给出提示。
QQ截图20131012133752.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|domain-capture

GMT+8, 2025-1-7 06:26 , Processed in 0.054980 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表