C语言IP地址查询系统如何实现? 5

1.实现一个交互系统,用户输入ip地址,显示对应的查询结果和查询执行时间;用户输入非法时,能提示用户。IP地址输入方式包括:A.a.b.c.d,其中a,b,c,d为0~2... 1. 实现一个交互系统,用户输入ip地址,显示对应的查询结果和查询执行时间;用户输入非法时,能提示用户。IP地址输入方式包括:A. a.b.c.d,其中a,b,c,d为0~255的整数,表示ip地址为a.b.c.d。这种方式下,显示对应ip的查询结果即可。B. a1.b1.c1.d1-a2.b2.c2.d2,其中a1,b1,c1,d1,a2,b2,c2,d2都是0~255的整数,表示从a1.b1.c1.d1到a2.b2.c2.d2的所有IP地址。这种方式下,显示对应的ip地址段对应的查询结果,如果存在多个记录,按照ip地址段顺序显示。数量过多时,注意分页显示。比如输入“219.235.224.1-219.236.1.1”,输出类似于:219.235.224.1-219.235.255.255中国 北京 北京市 联通219.236.0.0-219.236.1.1中国 北京 北京市 歌华query time : 1msC. 用户一次性输入多组a或者b的ip地址,批量处理这些数据。比如用户输入:“219.235.224.1 219.236.1.1”。输出类似于:219.235.224.1 中国 北京 北京市 联通219.236.1.1中国 北京 北京市 歌华(还有一个txt文件下面有图。用结构体还有文件读写如何解决?说一下具体思路也行,谢谢!txt文件里面有还几万条IP地址) 展开
 我来答
电子信息工程师
2020-02-07 · 专注IT技术方案设计
电子信息工程师
采纳数:317 获赞数:353

向TA提问 私信TA
展开全部
我觉得你这个需求,倒不一定非得用c语言来实现。你这个其实可以调用百度的插件,因为你在百度上输入这个IP地址的话,然后他就能查出来这个IP所在的位置,你可以用JAVA,然后调用百度的一些插件就能实现这个功能。
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
乐气妙功色你3490
2020-02-05 · TA获得超过2130个赞
知道大有可为答主
回答量:3469
采纳率:88%
帮助的人:356万
展开全部


C语言如何实现IP地址查询系统
参考如下:

void GetNameAndIp()
{
struct hostent *host;
struct in_addr *ptr;
DWORD dwScope = RESOURCE_CONTEXT;
NETRESOURCE *NetResource = NULL;
HANDLE hEnum;
WNetOpenEnum(dwScope, NULL, NULL, NULL, &hEnum);
WSADATA wsaData;
WSAStartup(MAKEWORD(1, 1), &wsaData);
if (hEnum)
{
DWORD Count = 0xFFFFFFFF;
DWORD BufferSize = 10240;
LPVOID Buffer = new char[10240];
WNetEnumResource(hEnum, &Count, Buffer, &BufferSize);
NetResource = (NETRESOURCE*)Buffer;
char szHostName[200];
for (unsigned int i = 0; i < BufferSize / sizeof(NETRESOURCE); i++, NetResource++)
{
if (NetResource->dwUsage == RESOURCEUSAGE_CONTAINER && NetResource->dwType == RESOURCETYPE_ANY)
{
if (NetResource->lpRemoteName)
{
CString strFullName = NetResource->lpRemoteName;
if (0 == strFullName.Left(2).Compare(_T("\\\\")))
strFullName = strFullName.Right(strFullName.GetLength() - 2);
gethostname(szHostName, strlen(szHostName));
USES_CONVERSION;
char *pchar = T2A(strFullName);
host = gethostbyname(pchar);
if (host == NULL) continue;
ptr = (struct in_addr *) host->h_addr_list[0];
string str = "";
for (int n = 0; n<4; n++)
{
CString addr;
if (n > 0)
{
str += ".";
}
int value = (unsigned int)((unsigned char*)host->h_addr_list[0])[n];
char p[20];
sprintf(p, "%d", value);
str.append(p);
}
std::cout <<"IP:"<< str <<" Name:"<<host->h_name<< std::endl;
}
}
}
delete Buffer;
WNetCloseEnum(hEnum);
}
WSACleanup();
}




本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
要努力学习的小七
2020-02-12
知道答主
回答量:1
采纳率:0%
帮助的人:655
展开全部
我想问,你现在写出来了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式