怎样动态创建二级域名?? 怎样用.net+c#实现动态创建二级域名,比如当用户注册成功后就会给他一个网址http://name.site.com,博客网站上都有这种功能,请高手指点,最好给个实例!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是想能否用程序实现,好多blog网站中应该不是还要与DNS服务商联系吧。是否可以用类似地址重写的方法动态实现? asp的代码我有一个,但没实验过要的话留个邮箱发给你自己慢慢研究吧 DNS 泛解析到你服务器上就可以了! DNS 泛解析到你服务器上就可以了! 泛二级域名解析就可以啦。不用同DNS 服务商联系,自己在dns控制面板设置,或者同空间服务商联系。 要想让用户访问你的站点,二级域名必须能够解析到你的IP地址,这个要同DNS服务商联系,难道你要求所有的客户端修改hosts? 有没有具体的实例参考一下,多谢!!我的e-mail:[email protected] 域名需要对dns服务器进行配置,服务器好像没有接口把http://do-net.xicp.net.NET技术群QQ群4329478,7019839,10058555---------------------------------------------------------个人QQ303864496msn:[email protected]成都理工大三,寻成都地区兼职,熟悉asp.net/C#/webserviceNeT(Nebula Team)结交愿意郑州发展的.net技术朋友(19-25岁)...email:[email protected] 第一步:把域名设置成泛解析. 就是把*.域名 解析到你的主机,是否支持泛解析,请查看你的域名商说明.第二步:IIS设成的时候不要绑定域名.注意一台服务器里只能有一个站点不绑定域名就是*.域名的默认访问页.第三步:默认页里加入以下代码:关键部分如下:string sURL=context.Request.ServerVariables["HTTP_HOST"].ToLower(); sURL就是获取的域名部分 . xxx.域名 对应的xxx就是用户名.然后查库里的记录,如xxx对应的是www.csd.net那就就把它转向到www.csdn.net 或者写一个框架页隐藏直实域名 第三步也可以写成HttpHandler或者HttpModule模块来处理 HttpHandler模块:public class DnsHttpHandler: IHttpHandler { public void ProcessRequest (HttpContext context) { string sUSER; UserDns user; string userDomain=string.Empty; string sURL=context.Request.ServerVariables["HTTP_HOST"].ToLower(); if(sURL.IndexOf("@")==-1&&sURL.IndexOf(".")==-1) { //判段域名,转向默认网址 context.Response.Redirect(DnsConfiguration.GetConfig().DefaultURL,true); } #region myhome设置 if(sURL=="保留域名") { context.Response.Redirect(DnsConfiguration.GetConfig().DefaultURL,true); } #endregion #region 判段并获取用户名 sUSER=Utility.DomainToUser(sURL); userDomain=Utility.GetFirstDomain(sURL); //context.Response.Write(userDomain); //context.Response.End(); user =Users.GetUserDns(sUSER,userDomain); if(user==null) { context.Response.Redirect(DnsConfiguration.GetConfig().DefaultURL,true); } context.Response.Write( "<meta http-equiv=refresh content=\"0;url="+user.RedirectURL.Trim()+"\">"); #endregion } public bool IsReusable { get { return false; } } } 提取用户名模块:public class Utility { public static string DomainToUser(string domain) { string username=string.Empty; string[] first_name; #region 判段并获取用户名 if(domain.IndexOf("@")==-1&&domain.IndexOf(".")==-1) { return username; } if(domain.IndexOf(".")!=-1) { first_name=domain.Split('.'); if(first_name[0]=="www") { username=first_name[1]; } else { username=first_name[0]; } } if(domain.IndexOf("@")!=-1) { first_name=domain.Split('@'); if(first_name[0]=="www") { username=first_name[1]; } else { username=first_name[0]; } } #endregion return username; } public static string GetFirstDomain(string domain) { string[] first_name; domain=domain.Replace('@','.'); string temp=string.Empty; if(domain.StartsWith("www.")) { domain=domain.Replace("www.",""); } if(domain.IndexOf('.')!=-1) { first_name=domain.Split('.'); }else return string.Empty; if(first_name.Length==2) { //sb.Append("{0}.{1}",first_name[0]) return String.Format("{0}.{1}",first_name[0],first_name[1]); } for(int i=1; i<first_name.Length;i++) { temp += first_name[i] + "."; } temp=temp.Remove(temp.Length-1,1); return temp; } } 首先DNS泛解析到你的服务器的IP上这样以后输入*.abc.com都可以进入abc网站接下来是在自己机器上做泛域名解析,这个可以用程序实现,或者用URL重写也可以 多谢各位大虾的回复、讨论,尤其是windinwing的恢复。但是我看了后还是一头雾水,不知道怎么下手,有没有一个完整点的实例参考一下。多谢!!! sql 用户表有个列“MDelete”,我想让它的的默认值为“false”该如何在在属性值里写??? 那位有在WEB中想QQ那样弹出提醒的代码 ~~~~~~~~~~~~市场需求调查问卷设计~~~~~~ VS2008打开2005的项目后发布出现问题 安装WEB项目后IIS权限问题 如果实现对Tags Cloud搜索? coldfusion隐藏表单问题 关于一个ajax初学者的问题 如何设日期变量 请教各位高手论坛的内容显示方法? 为什么VS2005的Web窗体不能直接加ActiveX控件? 那位朋友有DirectX文档的学习笔记,或是中文文档?
要的话留个邮箱发给你
自己慢慢研究吧
.NET技术群
QQ群4329478,7019839,10058555
---------------------------------------------------------
个人QQ303864496
msn:[email protected]
成都理工大三,寻成都地区兼职,熟悉asp.net/C#/webservice
NeT(Nebula Team)结交愿意郑州发展的.net技术朋友(19-25岁)...
email:[email protected]
就是把*.域名 解析到你的主机,是否支持泛解析,请查看你的域名商说明.
第二步:IIS设成的时候不要绑定域名.注意一台服务器里只能有一个站点不绑定域名
就是*.域名的默认访问页.
第三步:默认页里加入以下代码:关键部分如下:
string sURL=context.Request.ServerVariables["HTTP_HOST"].ToLower();
sURL就是获取的域名部分 .
xxx.域名
对应的xxx就是用户名.然后查库里的记录,如xxx对应的是www.csd.net那就就把
它转向到www.csdn.net 或者写一个框架页隐藏直实域名 第三步也可以写成HttpHandler或者HttpModule模块来处理
HttpHandler模块:
public class DnsHttpHandler: IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
string sUSER;
UserDns user;
string userDomain=string.Empty;
string sURL=context.Request.ServerVariables["HTTP_HOST"].ToLower();
if(sURL.IndexOf("@")==-1&&sURL.IndexOf(".")==-1)
{
//判段域名,转向默认网址
context.Response.Redirect(DnsConfiguration.GetConfig().DefaultURL,true);
} #region myhome设置
if(sURL=="保留域名")
{
context.Response.Redirect(DnsConfiguration.GetConfig().DefaultURL,true);
}
#endregion
#region 判段并获取用户名
sUSER=Utility.DomainToUser(sURL);
userDomain=Utility.GetFirstDomain(sURL);
//context.Response.Write(userDomain);
//context.Response.End();
user =Users.GetUserDns(sUSER,userDomain);
if(user==null)
{
context.Response.Redirect(DnsConfiguration.GetConfig().DefaultURL,true);
}
context.Response.Write( "<meta http-equiv=refresh content=\"0;url="+user.RedirectURL.Trim()+"\">");
#endregion } public bool IsReusable
{
get
{
return false;
}
}
} 提取用户名模块:
public class Utility
{
public static string DomainToUser(string domain)
{
string username=string.Empty;
string[] first_name;
#region 判段并获取用户名 if(domain.IndexOf("@")==-1&&domain.IndexOf(".")==-1)
{
return username;
}
if(domain.IndexOf(".")!=-1)
{
first_name=domain.Split('.');
if(first_name[0]=="www")
{
username=first_name[1];
}
else
{
username=first_name[0];
}
}
if(domain.IndexOf("@")!=-1)
{
first_name=domain.Split('@');
if(first_name[0]=="www")
{
username=first_name[1];
}
else
{
username=first_name[0];
}
}
#endregion
return username;
} public static string GetFirstDomain(string domain)
{
string[] first_name;
domain=domain.Replace('@','.');
string temp=string.Empty;
if(domain.StartsWith("www."))
{
domain=domain.Replace("www.","");
}
if(domain.IndexOf('.')!=-1)
{
first_name=domain.Split('.');
}else
return string.Empty;
if(first_name.Length==2)
{
//sb.Append("{0}.{1}",first_name[0])
return String.Format("{0}.{1}",first_name[0],first_name[1]);
}
for(int i=1; i<first_name.Length;i++)
{
temp += first_name[i] + ".";
}
temp=temp.Remove(temp.Length-1,1);
return temp;
}
}
接下来是在自己机器上做泛域名解析,这个可以用程序实现,或者用URL重写也可以