感谢!
解决方案 »
- SetMenuInfo 函数没有定义 怎么解决?
- 对话框接收消息的问题 ?
- vc 按扭 不弹起来的代码怎么写?
- 求Gif编码的源码
- 完全不懂vc的菜鸟,求一个文件夹选择框的制作
- 江湖救急--没找到"Use MFC in a Static Library"
- 一个很奇怪的问题,大家都进来看看
- 谁能给讲讲MSDN里的DrawCli是怎么组织绘图的?最好用结构图或者文字描述一下……
- vc++怎样调用pro/e图呢??????(在线等或者给我发邮件)
- vc中的统计函数
- 大家帮忙看看: 我写了一个录音程序并将所录声音用socket发送到远程机器上播放,为什么远程机器上接收到数据却放不出来声音?
- 怎样捕获IE的事件?
#include <stdlib.h>
#include <windows.h>BOOL IsValidIP(char *strIP);
int main()
{
char str[100];
scanf("%s",str);
if(IsValidIP(str)) printf("vliad IP");
else printf("invliad IP");
}BOOL IsValidIP(char *strIP)
{
int ip0,ip1,ip2,ip3;
sscanf(strIP,"%d.%d.%d.%d",&ip0,&ip1,&ip2,&ip3);
if ((0<ip0&&ip0<255)&&(0<ip1&&ip1<255)
&&(0<ip2&&ip2<255)&&(0<ip3&&ip3<255))
return TRUE;
return FALSE;
}
是否在FF - 0 区间中
const char FAR * cp
);先使用inet_addr()分析,如果成功说明输入的就是一个合法的ip地址,如果返回INADDR_NONE则说明输入的是一个主机名,那么再使用gethostbyname()来获取其ip地址。我通常的做法是直接使用gethostbyname()来获得ip地址,发现虽然速度慢一点,但不管输入的是ip地址还是主机名该函数都能正确返回ip地址。
{
WORD wVersionRequested = MAKEWORD(2, 2);
WSADATA wsaData;
if (WSAStartup(wVersionRequested, &wsaData) != 0) return 0;
int nAdapter = 0;
do
{
char szHostname[256];
if ( gethostname(szHostname, sizeof(szHostname)) ) break;
HOSTENT* pHostEnt = gethostbyname(szHostname);
if (pHostEnt == NULL) break;
if (pHostEnt->h_length != 4) break; while ( pHostEnt->h_addr_list[nAdapter] )
{
in_addr address;
CopyMemory(&address.S_un.S_addr, pHostEnt->h_addr_list[nAdapter], pHostEnt->h_length);
*(lpIP + nAdapter) = address.S_un.S_addr; if ( ++nAdapter >= 16 ) break;
}
} while(0);
WSACleanup();
return nAdapter;
}