判断一个字符串是否是域名或者IP的小程序

原创 2012年03月22日 10:46:52

int _IsValid(char *str)   //检测给函数传递的参数格式是否正确  1为IP 2为域名
{
 int Num = 0;   //字符串中数字出现的次数
 int StrCount = 0;  //字符串总字数
 int point = 0;   //字符串中 . 出现的次数
 int Word = 0;   //字符串中字母出现的次数
 int FormatError = 0; //如果字符串中有2个连续的 - 则出错返回
 char *ForCheck = NULL; //字符指针
 char CopyStr[255] = ""; //把传进来的字符串进行处理,大写变小写

 if (str[strlen(str)-1] == '\n')  //如果参数中有 \n 则删除
  str[strlen(str)-1] = '\0';

 if(!strcpy_s(CopyStr,255,str))
 {
  return -1;   //如果字符串大小超过255 那么不是一个域名,更不是一个IP
 }
 
 for(int i = 0;i<255;i++)
 {
  if( CopyStr[i] >= 97 && CopyStr[i] <= 122 )
  {
   CopyStr[i] -= 32;
  }
 }

 while((*ForCheck) != NULL)
 {
  if ( ((*ForCheck) >= '0'&& (*ForCheck) <= '9'))
  {
   FormatError = 0;
   Num++;
  }
  else if ((*ForCheck) == '.')
  {
   FormatError = 0;
   point++;
  }
  else if(  ( (*ForCheck) >= 'a' && (*ForCheck) <= 'z') )
  {
   FormatError = 0;
   Word++;
  }
  else if ((*ForCheck) == '-' )
  {
   FormatError++;
   
   if(FormatError > 1)   //连续2次出现 - 则出错返回
   {
    return -1;
   }
  }
  else       //出现其他符号,直接返回错误
   return -1;
  

  StrCount++;
  ForCheck++;
 }

 if (((Num+point) == StrCount )&& ( point == 3 ) )  //如果为IP地址 那么 . 和数字的和应该等于字符串大小
 {
  return 1;
 }
 else if (  (Num+point+Word) == StrCount )   //如果字符串由三种元素组成,那么判断是否是域名
 {
  ForCheck = str;

  if (point == 1 || point == 2)         //如果有以下后缀 那么肯能是个域名
  {    
   if( strstr(ForCheck,".com")  || strstr(ForCheck,".net") ||   
    strstr(ForCheck,".org")  || strstr(ForCheck,".edu") ||
    strstr(ForCheck,".mil")  || strstr(ForCheck,".gov") ||
    strstr(ForCheck,".biz")  || strstr(ForCheck,".info")||
    strstr(ForCheck,".name") || strstr(ForCheck,".pro") ||
    strstr(ForCheck,".aero") || strstr(ForCheck,".coop")||
    strstr(ForCheck,".museum") )
   {
    return 2; //是否为域名,利用gethostbyname函数的返回值来判断
   }
   else
    return -1;
  }
  else
   return -1;

 }

 return -3; //程序意外退出
}

检查一个字符串是不是常用域名

检查一个字符串是不是常用域名Function CheckDomain(ByVal Domain As String) As Boolean    Dim vDomain() As String = D...
  • iwebsms
  • iwebsms
  • 2004年09月28日 19:35
  • 879

域名合法判断

import java.util.Scanner; public class Main { /** * @param args */ public static void main(S...
  • a19891024
  • a19891024
  • 2014年07月09日 22:42
  • 843

android 检测字符串是否为合法域名

今天,简单讲讲android里如何检测输入的字符串为合法的域名。 这个昨天搜索了很多资料,基本没有找到符合要求的代码。后来,花了很多时间,才解决了问题。这里记录一下。 一。检查输入...
  • bzlj2912009596
  • bzlj2912009596
  • 2017年12月29日 08:38
  • 65

判断请求URL中是IP还是域名

判断请求URL中是IP还是域名 1. 当用户通过IP访问时,Cookie的Domain为IP地址 2. 当用户通过域名访问时,Cookie的Domain为二级域名...
  • xianzhen376
  • xianzhen376
  • 2015年11月02日 19:13
  • 4380

VC 域名解析成ip地址

CString GetHostbyName(const char * HostName) { CString strIPAddress=_T(""); int WSA_return; ...
  • qiangzi4646
  • qiangzi4646
  • 2016年12月27日 09:34
  • 1051

C++判断IP地址字符串的合法性

目前的解决方法可以归为以下三类: 1、自己动手写:以'.'将IP字符串分割成子串,再依次判断每个子串的每个字符是否都是数字,最后转换成值,判断是否在0~255的范围。 /* 功能: 判断I...
  • jiangyanting2011
  • jiangyanting2011
  • 2017年08月02日 18:28
  • 1859

判断一个字符串是否是域名或者IP的小程序

int _IsValid(char *str)   //检测给函数传递的参数格式是否正确  1为IP 2为域名 {  int Num = 0;   //字符串中数字出现的次数  int StrC...
  • wcg37
  • wcg37
  • 2012年03月22日 10:46
  • 1808

Java 判断字符串是否是网址

使用正则表达式可以很简单的判断一个字符串是否是网址判断字符串是否是url /** * 判断字符串是否为URL * @param urls 用户头像key * @r...
  • Bronna
  • Bronna
  • 2017年08月24日 13:51
  • 561

判断某个字符串是不是一个合法的IP地址

写一个算法判断某个字符串是不是一个合法的IP地址。
  • kongkongkkk
  • kongkongkkk
  • 2017年08月31日 18:50
  • 1314

判断一个字符串是否是IP地址

#include int main() {   char str[] = "111.111.111.21";   char str2[] = "a.111.111.111";   ch...
  • u012979457
  • u012979457
  • 2016年11月01日 22:36
  • 729
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:判断一个字符串是否是域名或者IP的小程序
举报原因:
原因补充:

(最多只允许输入30个字)