文档库 最新最全的文档下载
当前位置:文档库 › 新网域名查询和注册API接口类源码

新网域名查询和注册API接口类源码

新网域名查询和注册API接口类源码
新网域名查询和注册API接口类源码

最近公司要做一个基于新网的API,在自己的系统中实现实时查询域名注册情况,并且要能实时注册,注册费用自动从我们的代理帐户中扣除,下面是我写的核心实现类代码:public class XinNetApiBase

{

//默认代理编号

public readonly static string AgentID = "agent88888";

private Encoding _WebEncode = Encoding.GetEncoding("UTF-8");

private string _RequestString;

private string _Result;

private string _RequestUrl;

private WebClient _EWebClient = new WebClient();

///

///处理编码

///

public Encoding WebEncode

{

get { return _WebEncode; }

set { _WebEncode = value; }

}

///

///请求的查询参数

///

public string RequestString

{

get { return _RequestString; }

set { _RequestString = value; }

}

///

///请求返回的结果

///

public string Result

{

get { return _Result; }

set { _Result = value; }

}

///

///请求的URL地址

///

public string RequestUrl

{

get { return _RequestUrl; }

set { _RequestUrl = value; }

}

///

///客户端与服务器通信类

///

public WebClient EWebClient

{

get { return _EWebClient; }

set { _EWebClient = value; }

}

public XinNetApiBase(ApiType _apitype, List _list)

{

this.RequestUrl = GetApiUrl(_apitype);

this.RequestString = GetRequestString(_list);

this.GetHttp();

}

public XinNetApiBase(string _ApiUrl, List _list) {

this.RequestUrl = _ApiUrl;

this.RequestString = GetRequestString(_list);

}

public string GetRequestString(List list)

{

string requestUrl = "";

foreach (QueryParam q in list)

{

requestUrl += q.QueryName + "=" + HttpUtility.UrlEnco de(q.QueryValue, this.WebEncode) + "&";

}

return requestUrl.TrimEnd('&');

}

public string GetHttp()

{

this.EWebClient.Headers.Add(HttpRequestHeader.ContentTyp e, "application/x-www-form-urlencoded");

this.EWebClient.Encoding = this.WebEncode;

this.Result = this.EWebClient.UploadString(new Uri(this.R

equestUrl), "POST", this.RequestString);

return this.Result;

}

public string GetApiUrl(ApiType _ApiType)

{

string _Url = "";

switch (_ApiType)

{

case ApiType.Check:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=check&charset=utf-8";

break;

case ApiType.Register:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=Register&charset=utf-8";

break;

case ApiType.Status:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=Status&charset=utf-8";

break;

case ApiType.ModDns:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=ModDns&charset=utf-8";

break;

case ApiType.domain:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=DomainRenew&charset=utf-8";

break;

case ApiType.GetProductKey:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=GetProductKey&charset=utf-8";

break;

case ApiType.ChangeProductKey:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=ChangeProductKey&charset=utf-8";

break;

case ApiType.ModifyContactor:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=ModifyContactor&charset=utf-8";

break;

default:

_Url = "https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?metho d=testmd5&charset=utf-8";

break;

}

return _Url;

}

///

/// MD5加密

///

///加密的内容

///16或32 表示16位或32位

///

public static string MD5(string _ConvertString, int _Len)

{

using (System.Security.Cryptography.MD5CryptoServiceProvi der provider = new System.Security.Cryptography.MD5CryptoServiceProvi der())

{

switch (_Len)

{

case16:

return BitConverter.ToString(https://www.wendangku.net/doc/1918317909.html,pute Hash(Encoding.UTF8.GetBytes(_ConvertString)), 4, 8).Replace("-", stri ng.Empty).ToUpper(System.Globalization.CultureInfo.CurrentCulture);

case32:

return BitConverter.ToString(https://www.wendangku.net/doc/1918317909.html,pute Hash(Encoding.UTF8.GetBytes(_ConvertString))).Replace("-", string.Emp ty).ToUpper(System.Globalization.CultureInfo.CurrentCulture);

default:

return BitConverter.ToString(https://www.wendangku.net/doc/1918317909.html,pute Hash(Encoding.UTF8.GetBytes(_ConvertString))).Replace("-", string.Emp ty).ToUpper(System.Globalization.CultureInfo.CurrentCulture);

}

}

}

}

public class QueryParam

{

private string _QueryName;

private string _QueryValue;

public string QueryName

{

set { this._QueryName = value; }

get { return this._QueryName; }

}

public string QueryValue

{

set { this._QueryValue = value; }

get { return this._QueryValue; }

}

public QueryParam(string _Name, string _Value) {

this.QueryName = _Name;

this.QueryValue = _Value;

}

}

public enum ApiType

{

Check,

Register,

Status,

ModDns,

domain,

GetProductKey,

ChangeProductKey,

ModifyContactor

}

查询域名是否已经注册,使用演示:

List param = new List();

param.Add(new QueryParam("name", "viqiwu"));

param.Add(new QueryParam("enc", "E"));

param.Add(new QueryParam("suffix", ".com"));

param.Add(new QueryParam("suffix", "https://www.wendangku.net/doc/1918317909.html,"));

param.Add(new QueryParam("suffix", ".cn"));

param.Add(new QueryParam("client", "agent88888"));

XinNetApiBase _XinNet = new XinNetApiBase(ApiType.Chec k, param);

Response.Write(_XinNet.Result);

//_XinNet.Result 返回的结果 num=3&enc=E&name1=https://www.wendangku.net/doc/1918317909.html,&c hk1=0&name2=https://www.wendangku.net/doc/1918317909.html,&chk2=100&name3=https://www.wendangku.net/doc/1918317909.html,&chk3=0

//chk1=0 表示不能注册了 chk1=100 表示可以注册

下面是官方API说明文档:

Xinnet Corp. 北京新网数码信息技术有限公司

POST参数注意事项:

所有电话号码及邮编必须为数字,且不能为零

所有英文信息字段必须为

本接口暂时不支持信任制代理

1. 文档说明

1.1 文档简介

本版本采用HTTP+POST方式进行注册。

1.2 使用限制

只有新网的正式代理才能使用。

必须符合接口认证方式才能提交命令。

注册接口按照该代理的价格进行实时注册实时扣费,如果预付款不足,将不能提交注册申请。

接口文档的获得和传播必须符合新网的保密协议

1.3 操作说明

1。代理在新网代理专区填写授权POST的IP地址和认证密码。

2。按照接口说明编写客户端程序向接口提交查询、注册命令,立刻获得结果。

1.4 域名范围

国际域名,.com,.net,.org,.biz,.info,.cc,.mobi域名,包括中文.com,.cc 国内域名,.cn,https://www.wendangku.net/doc/1918317909.html,类,.中国,.网络,.公司,通用网址

1.5 md5串测试地址:

url:https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?method=testmd5

https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?method=testmd5&charset=utf-8 (utf-8字符集)

参数:strbuf

输出:strbuf内容及编码后的md5串

中文编码使用gb2312 或者utf-8编码,否则易出现md5校验错误:verify-failur e 摘要认证失败

关于此处说明:请确保相关程序文件的charset设置和文件自身保存的编码一致。

并请保证所有关联文件编码一致,您明确要求不一致(需转码)的除外

gb2312和utf-8中文md5结果可能不同,请确保提交内容字符集和md5串一致。

2. 接口概述

2.1 接口目录

Check接口:主要负责进行域名的查询,采用多线程方式,可以同时查询多个域名 Register接口:注册接口,实时注册,成功后立即扣费。如果超时,不转为后台注册,域名将被删除。

不提供通用网址注册服务。

Status接口:查询域名是否注册成功。

ModDns接口: 进行在线修改DNS操作。

domain续费接口:域名续费接口,实时续费,立即扣费。

获取产品密码接口:获取域名管理密码、mydns密码以及域名到期时间。

修改产品密码接口:修改域名管理密码以及mydns密码。

ModifyContactor 接口:修改除域名所有人以外的所有联系人信息。

注册本域名下的DNS:注册本域名下的DNS。

查询本域名下的DNS:查询本域名下的DNS。

修改本域名下的DNS:修改本域名下的DNS。

删除本域名下的DNS:删除本域名下的DNS。

2.2 认证方式

1。IP限制,对于任何接口必须从该代理授权的IP,每个代理限填3个IP地址

2。MD5非可逆加密摘要,除Check接口、和Status接口外,其它所有接口都要求提供

2.3 返回结果

按照POST数据格式返回数据结果

3. 接口说明

3.1 Check 接口

POST 地址: https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?method=check

https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?method=check&charset=ut f-8 (utf-8字符集)

POST 参数: name 名字;1个,没有后缀

enc 编码,E,G;1个;

suffix 后缀;1-N个,域名后缀.com/.net/.org/.中国/cnaddr

/.公司/

client 代理号;1个

例如:name=abc&enc=E&suffix=.com&suffix=.net&suffix=.cn&cl ient=agent111

POST 数据,必须进行URL编码

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

返回结果: num 域名数量

enc 编码

name[1--N] 域名,名字+后缀 N=num

chk[1--N] N=num 查询结果: 0 不可注册 100 可以注册

信息编码:

auth-failure 认证失败

例如:num=3&enc=E&name1=https://www.wendangku.net/doc/1918317909.html,&chk1=0&name2=https://www.wendangku.net/doc/1918317909.html,&chk2=100&n ame3=https://www.wendangku.net/doc/1918317909.html,&chk3=-100

注意:通用网址suffix=cnaddr(目前仅提供老通用网址续费,不提供注册服务)

3.2 Register 接口

POST 地址: https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?method=Register https://www.wendangku.net/doc/1918317909.html,/domain/api.gb?method=Register&charset =utf-8 (utf-8字符集)

POST 参数:

[域名信息]

dn 域名;1个,包括名字和后缀

enc 编码,E,G;1个;

client 代理号;1个

checksum MD5加密摘要

period 注册年数;[如果不填默认为1年],有效值1-10年

url URL转发[通用网址需要,如果不填默认为www.xinnet.c om]

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

uname1 注册人中文单位名称 [必须]

uname2 注册人英文单位名称 [必须]------------------- 必须英文,且中间有一个空

uname3 注册单位拼音 [.中国\通用网址必须] ---------- 必须为字母

uname4 注册单位缩写 [.中国\通用网址必须] ----------

location 注册人单位所在地 [注册.中国\通用网址必须]

rname1 注册人|单位负责人中文名称 [国内域名必须] rname2 注册人|单位负责人英文名称 [国际域名必须] ust 注册人英文国家名称两个字母[CN表示中国],接口自动翻译中文

uprov 注册人英文省份名称如:Beijing,接口自动翻译中文

ucity1 注册人中文城市名称 [国内域名必须]

ucity2 注册人英文城市名称 [国际域名必须]

uaddr1 注册人中文地址 [国内域名必须]

uaddr2 注册人英文地址 [国际域名必须]

uzip 注册人邮政编码 [必须]

utelc 注册人电话国家码,可以不填默认为86,

长度不能大于3位

utela 注册人电话区号如果为手机可以不填,此项不可为0

uteln 注册人电话号码 (区号+电话号码长度必须小于12)

utele 注册人电话分机

ufaxc 注册人传真国家码,可以不填默认为86,长度不能大于3位

ufaxa 注册人传真区号如果为手机可以不填,此项不可为0

ufaxn 注册人传真号码必须为数字 (区号+传真号码长度必须小于12)

ufaxe 注册人传真分机

uemail 注册人email地址

trade 注册人所在行业英文编码 [如果不填,默认为商业S8]//此字段最好不填,如果

填写,千万不能用小写S

[域名管理联系人信息] 管理联系人单位地址信息和注册人信息一致,所以不用填

uincode travel域名UIN编码 travel域名必须,其他域名不需要 certtype asia域名证件类型 asia域名必须,其他域名不需要

passport 护照或居民身份证

certificate 营业执照

legislation 特许成立的法定机构证明

societiesRegistry 非营利团体登记证明

politicalPartyRegistry 政党注册证明

other 其他

certcode asia域名证件号码 asia域名必须,其他域名不需要

entitytype asia域名实体类型 asia域名必须,其他域名不需要

naturalPerson 个人

corporation 公司或社团法人

cooperative 合作社

partnership 合伙或集体公司

government 政府机关

politicalParty 政党或工会

society 信托管理机构﹑资产管理机构﹑协会或社团

institution 公共机构

other 其他

aname1 管理联系人中文名称 [国内域名必填]

aname2 管理联系人英文名称 [国际域名必填]

atelc 管理联系人电话国家码可以不填默认为8 6,长度不能大于3位

atela 管理联系人电话区号如果为手机可以不填 ateln 管理联系人电话号码区号+电话号码长度必须小于1 2

atele 管理联系人电话分机可以不填,此项不可为0

afaxc 管理联系人传真国家码,可以不填默认为86,长度不能大于3位

afaxa 管理联系人传真区号,如果为手机可以不填可以不填,此项不可为0

afaxn 管理联系人传真号码

afaxe 管理联系人传真分机

aemail 管理联系人电子邮件地址 [必须]

说明:管理联系人和注册人的电话和传真必须保证一份为填写完整的。

否则,如果管理联系人电话传真缺少,将使用注册人的电话传真

如果注册人电话传真缺少,将使用管理联系人的电话传真

如果注册人没有email地址,将使用管理联系人的email地址

[技术联系人信息]

tname1 技术联系人中文名称 [如果不填,默认为管理联系人]

tname2 技术联系人英文名称 [如果不填,默认为管理联系人]

tunit1 技术联系人单位中文名称 [如果不填,默认为管理联系人]

tunit2 技术联系人单位英文名称 [如果不填,默认为管理联系人]

tst 技术联系人英文国家名称,两个字母[CN 表示中国], [如果不填,默认为

管理联系人]

tprov 技术联系人英文省份名称如:Beijing,接口自动翻译中文,[如果不填,默认

为管理联系人]

tcity1 技术联系人中文城市名称 [如果不填,默认为管理联系人]

tcity2 技术联系人英文城市名称 [如果不填,默认为管理联系人]

taddr1 技术联系人中文地址 [如果不填,默认为管理联系人]

taddr2 技术联系人英文地址 [如果不填,默认为管理联系人]

tzip 技术联系人邮政编码 [如果不填,默认为管

理联系人]

temail 技术联系人电子邮件地址 [如果不填,默认为管理联系人]

ttelc 技术联系人电话国家码 [如果不填,默认为管理联系人]

ttela 技术联系人电话区号 [如果不填,默认为管理联系人]

tteln 技术联系人电话号码 [如果不填,默认为管理联系人]

ttele 技术联系人电话分机 [如果不填,默认为管理联系人]

tfaxc 技术联系人传真国家码 [如果不填,默认为管理联系人]

tfaxa 技术联系人传真区号 [如果不填,默认为管理联系人]

tfaxn 技术联系人传真号码 [如果不填,默认为管理联系人]

tfaxe 技术联系人传真分机 [如果不填,默认为管理联系人]

[交费联系人信息]

fname1 交费联系人中文名称 [如果不填,默认为管理联系人]

fname2 交费联系人英文名称 [如果不填,默认为管理联系人]

funit1 交费联系人单位中文名称 [如果不填,默认为管理联系人]

funit2 交费联系人单位英文名称 [如果不填,默认为管理联系人]

fst 交费联系人英文国家名称,两个字母[CN 表示中国], [如果不填,默认为

管理联系人]

fprov 交费联系人英文省份名称如:Beijing,接口自动翻译中文,[如果不填,默认

为管理联系人]

fcity1 交费联系人中文城市名称 [如果不填,默认为管理联系人]

fcity2 交费联系人英文城市名称 [如果不填,默认为管理联系人]

faddr1 交费联系人中文地址 [如果不填,默认为管理联系人]

faddr2 交费联系人英文地址 [如果不填,默认为管理联系人]

fzip 交费联系人邮政编码 [如果不填,默认为管理联系人]

femail 交费联系人电子邮件地址 [如果不填,默认为管理联系人]

ftelc 交费联系人电话国家码 [如果不填,默认为管理联系人]

ftela 交费联系人电话区号 [如果不填,默认为管理联系人]

fteln 交费联系人电话号码 [如果不填,默认为管理联系人]

ftele 交费联系人电话分机 [如果不填,默认为管理联系人]

ffaxc 交费联系人传真国家码 [如果不填,默认为管理联系人]

ffaxa 交费联系人传真区号 [如果不填,默认为管理联系人]

ffaxn 交费联系人传真号码 [如果不填,默认为管理联系人]

ffaxe 交费联系人传真分机 [如果不填,默认为管理联系人]

[DNS信息]

dns1 域名主服务器名字 [如果不填默认为n https://www.wendangku.net/doc/1918317909.html,]

dns2 域名辅服务器名字 [如果不填默认为n https://www.wendangku.net/doc/1918317909.html,]

例如:dn=https://www.wendangku.net/doc/1918317909.html,&enc=E&client=agent111&period=1.

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

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

checksum=MD5("Register"+client+password+dn+aemail+u name2)

"Register"为字符串常量,表示接口名称。

其他没有引号表示为POST参数变量,password为代理专区中设置的认证密码

client为客户号,dn为域名,aemail为管理联系人电子邮件,uni t2为注册单位英文名称

返回结果: ret 注册结果,0 失败,100成功 50 超时等待

info 正常的信息,1个

err 错误的信息,0-N个

返回信息:

格式: 操作/对象-结果

reg-success 注册成功

reg-waiting 提交成功,等待注册

reg-failure 注册失败

reg-unauth 未被授权注册通用网址[new]

auth-failure 认证失败

name-null 域名为空

name-wrong 错误的域名后缀

name-invalid 域名无效包含错误字符

client-invalid 客户号无效

client-null 客户号为空

verify-null 没有摘要

db-fail 数据库连接失败

credit-fail 客户预付款不足

name-exist 域名已经存在

period-invalid 注册年限无效

verify-failure 摘要认证失败

uname1-invalid 注册人单位中文名称无效

uname1-null 注册人单位中文名称为空

uname2-invalid 注册人单位英文名称无效

uname2-null 注册人单位英文名称为空

uname3-invalid 注册人单位拼音无效

uname3-null 注册人单位拼音为空

uname4-invalid 注册人单位缩写无效

uname4-null 注册人单位缩写为空

rname1-invalid 注册人中文姓名无效

rname1-null 注册人中文姓名为空

rname2-invalid 注册人英文姓名无效

rname2-null 注册人英文姓名为空

uaddr1-invalid 注册人单位中文地址中文名称无效 uaddr1-null 注册人单位中文地址中文名称为空 uaddr2-invalid 注册人单位中文地址英文名称无效 uaddr2-null 注册人单位中文地址英文名称为空

ucity1-invalid 注册人单位中文城市无效

ucity1-null 注册人单位中文城市为空

ucity2-invalid 注册人单位英文城市无效

ucity2-null 注册人单位英文城市为空

aname1-invalid 管理联系人中文姓名无效

aname1-null 管理联系人中文姓名为空

aname2-invalid 管理联系人英文姓名无效

aname2-null 管理联系人英文姓名为空

uteln-invalid 注册人电话号码无效

uteln-null 注册人电话号码为空

ateln-invalid 管理联系人电话号码无效

ateln-null 管理联系人电话号码为空

ufaxn-invalid 注册人传真号码无效

ufaxn-null 注册人传真号码为空

afaxn-invalid 管理联系人传真号码无效

afaxn-null 管理联系人传真号码为空

uzip-invalid 注册人邮政编码无效

uzip-null 注册人邮政编码为空

aemail-invalid 管理联系人email无效

aemail-null 管理联系人email为空

uincode-invalid travel域名UIN编码无效

certtype-invalid asia域名证件类型无效

certcode-invalid asia 域名证件号码无效

entitytype-invalid asia域名实体类型无效

例如: ret=100&info=reg-success

ret=0&err=auth-failure

ret=0&err=uname2-invalid&err=aemail-null&err=uaddr2-inva lid&err=

相关文档