提取域名中的二级域名,该如何处理
提取域名中的二级域名
如www.baidu.com www.google.com www.360.cn提取出baidu、google、360
c语言如何实现,急!
------解决方案--------------------
掐头去尾。
char pc[1024]="www.baidu.com"
char pcTmp[1024];
strcpy(pcTMp, &pc[4]);
strcpy(strstr(pcTmp, "."), "");//点后面的都删除。
------解决方案--------------------
最好保证都是带有二级域的,否则是没法写了,比如163.com这样的一级域名是不允许的,必须是二级域www.163.com。
------解决方案--------------------
如www.baidu.com www.google.com www.360.cn提取出baidu、google、360
c语言如何实现,急!
------解决方案--------------------
掐头去尾。
char pc[1024]="www.baidu.com"
char pcTmp[1024];
strcpy(pcTMp, &pc[4]);
strcpy(strstr(pcTmp, "."), "");//点后面的都删除。
------解决方案--------------------
最好保证都是带有二级域的,否则是没法写了,比如163.com这样的一级域名是不允许的,必须是二级域www.163.com。
------解决方案--------------------
//获取主域名
CString CUtility::GetMainDomain(CString strDomain)
{
static char szInternationalDomain[] =
//国际域名
"com net org gov edu "
;
static char szIdvDomain[] =
//个人域名,好像只出现于第二级如:idv.la
"idv"
;
static char szChinaProvinceDomain[] =
//中国省市域名
"ac.cn bj.cn sh.cn tj.cn cq.cn "
"he.cn sx.cn nm.cn ln.cn jl.cn "
"hl.cn js.cn zj.cn ah.cn fj.cn "
"jx.cn sd.cn ha.cn hb.cn hn.cn "
"gd.cn gx.cn hi.cn sc.cn gz.cn "
"yn.cn xz.cn sn.cn gs.cn qh.cn "
"nx.cn xj.cn tw.cn hk.cn mo.cn "
;
CString strMainDomain = strDomain;
vector<CString> vecDomainPart;
ParseStringToVec((LPCTSTR)strDomain,'.',vecDomainPart);
switch( vecDomainPart.size() )
{
case 0:
case 1:
case 2:
break;
default:
if (NULL != strstr(szInternationalDomain,(LPCTSTR)vecDomainPart[vecDomainPart.size()-1]))
{
strMainDomain = vecDomainPart[vecDomainPart.size()-2] + "." + vecDomainPart[vecDomainPart.size()-1];
}
else if ( NULL != strstr(szInternationalDomain,(LPCTSTR)vecDomainPart[vecDomainPart.size()-2])
------解决方案--------------------
vecDomainPart[vecDomainPart.size()-2] == szIdvDomain )
{
strMainDomain = vecDomainPart[vecDomainPart.size()-3] + "." + vecDomainPart[vecDomainPart.size()-2] + "." + vecDomainPart[vecDomainPart.size()-1];
}
else
{
CString strTmp = vecDomainPart[vecDomainPart.size()-2] + "." + vecDomainPart[vecDomainPart.size()-1];
if (NULL != strstr(szChinaProvinceDomain,(LPCTSTR)strTmp))
{
strMainDomain = vecDomainPart[vecDomainPart.size()-3] + "." + strTmp;
}
else
{
strMainDomain = strTmp;
}
}
}
return strMainDomain;
}