我们的寒假作业,用C语言写一个程序(IP查询系统,详细如下),谢了!有思路也行,看一下吧,谢谢了
定义结构体数组,里面存储地址段的信息。其中要把ip点分十进制的形式转为主机字节序的整数形式,便于后面进行查找。读取文件每行,按分隔符解析出每列,然后填充到预先定义好的结构体里。由于文件已经按照ip地址从小到大排列,是有序的,所以这里直接加载填充就好,不需要再排序。循环读取用户输入,依据分隔符判断命令类型是哪种,解析出其中ip,同样转为主机字节序,然后在结构体数组里进行二分查找。二分查找这里主要是为了保证查询效率。最后把定位到的数组相应位置的信息按需要的格式输出。由于需要加载的文件比较大,需要考虑内存的问题,可以:
1.动态分配内存;
2.mmap方式加载文件,结构体里只存地址段起始结束位置,另外存储地址段信息映射的指针,减少内存开销。