求大神给个思路想写个IP地址管理程序

zpc198600 2016-06-17 02:33:30
我现在有N多IP地址需要管理,用EXCEL有点混乱,所以想自己用用d写个小程序管理下,d+access单机版
前提所有已用IP都在一张表里
1、想实现输入一个网段,查找该网段有那些地址没被占用
2、想实现输入一个地址,查找是否被占用
3、IP地址的排序问题
如果是字符就好办了,因为关系到IP地址的转换,排序等问题有点头大,有大神做过这方面的给个思路
...全文
623 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
夏夜虫飞 2016-07-04
  • 打赏
  • 举报
回复
我是来学习的
xinghf 2016-07-03
  • 打赏
  • 举报
回复
同意楼上 IP 地址和 掩码都 存储为二进制,当查询一个地址时可以把所有包括该地址的网段列出来,管理起来更方便。 如 127.0.0.0 /8 127.1.0.0 /16 127.1.2.0 /24 找 127.1.2.100。
zhenghuinb1025 2016-06-28
  • 打赏
  • 举报
回复
1、IP地址存储为二进制,即32们二进制数字 2、与IP地址配合要同时保存子网掩码,同32位二进制 3、IP地址加子网掩码作与运算可以求网段号 4、根据网段号可以求出该网段可以容纳多少主机 5、根据网段号加存储的IP可以求出哪些IP可用了
YaMaHaHa01 2016-06-28
  • 打赏
  • 举报
回复
别听他们扯,ping只对开机的有用,人家要是没开机呢?
YaMaHaHa01 2016-06-28
  • 打赏
  • 举报
回复
其实很简单我觉得 ,你只要把没个ip地址根据小数点拆分成四个数据,分四个数字字段去存储就好了,每个数据在0-255质检,查询时用and条件关联一下就好,合成用字符串转一下加点就OK啦。
zbdzjx 2016-06-28
  • 打赏
  • 举报
回复
之前写过类似的小程序。 ip地址段是否在用,可以网上搜ping功能的实现,可以ping1~254全部的ip,看看哪个再用。 我们公司还有一套管理系统,多数电脑都会安装使用,所以,我在用户登录管理系统时,将当前电脑的ip写到数据库中。 这样,最终可以查出,1~254这个ip中,哪些ip正在使用,哪些ip曾经使用过(DHCP动态分配)。
悠扬之韵 2016-06-27
  • 打赏
  • 举报
回复
1,是否被占用, 可以用PING命令,测试一下。 2,排序的话,可以在表中再增加一个字段,把缺位的用“0”补上,排序时,就对这个新增的字段进行排序。
zpc198600 2016-06-21
  • 打赏
  • 举报
回复
IP段 掩码
192.168.0.0 24
172.29.0.0 24
172.29.1.0 25
比如我表如上所示,

1、想实现输入一个地址,查找是否被占用 如输入172.29.2.0 查询是否以上面表中占用
2、IP地址的排序问题 实现以上地址的排序问题
zpc198600 2016-06-21
  • 打赏
  • 举报
回复
引用 4 楼 lyhoo163 的回复:
一、通过循环内网IP地址,对应IP地址,获取MAC地址(被占用)。

二、建立数据表,保存相应数据。字段:IP,MAC,占用,测试时间,备注,ID

你可能没明白我的意思,我只是地址管理,不是内网取地址
zpc198600 2016-06-21
  • 打赏
  • 举报
回复
引用 3 楼 volf420 的回复:
计算建立在存储的基础上,给你一个建议,在存储时,加一个字段,字符串型,将IP地址在保存时,去点,每节三位串起来,不够3位用0补。如127。0。0。1,在此字段保存的数值为:127000000001,这样就可以用字符串进行排序与范围查询,可以满足你以上的三个要求。


这个思路倒是可以,但还是不能满足需求,我给你举个我的例子,比如我在表时存储着一个IP段 192.168.0.0 掩码24位,这样就代表192.168.0.0-192.168.0.254的一个段,我会在里面存N个段,这样查询时我输入192.168.0.5,要定位到这个段里
lyhoo163 2016-06-19
  • 打赏
  • 举报
回复
一、通过循环内网IP地址,对应IP地址,获取MAC地址(被占用)。 二、建立数据表,保存相应数据。字段:IP,MAC,占用,测试时间,备注,ID
磐赢 2016-06-19
  • 打赏
  • 举报
回复
计算建立在存储的基础上,给你一个建议,在存储时,加一个字段,字符串型,将IP地址在保存时,去点,每节三位串起来,不够3位用0补。如127。0。0。1,在此字段保存的数值为:127000000001,这样就可以用字符串进行排序与范围查询,可以满足你以上的三个要求。
zpc198600 2016-06-18
  • 打赏
  • 举报
回复
引用 1 楼 DelphiGuy 的回复:
那你就直接用字符串存储,需要用数字形式的时候用inet_addr转换一下就可以了。

主要是计算,不是存储,计算我上面三个条件怎么实现
  • 打赏
  • 举报
回复
那你就直接用字符串存储,需要用数字形式的时候用inet_addr转换一下就可以了。
Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。SVN相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。 SVN 的主要功能(1)目录版本控制CVS 只能跟踪单个文件的历史, 不过 Subversion 实作了一个 虚拟 的版本控管文件系统, 能够依时间跟踪整个目录的变动。 目录和文件都能进行版本控制。(2)真实的版本历史自从CVS限制了文件的版本记录,CVS并不支持那些可能发生在文件上,但会影响所在目录内容的操作,如同复制和重命名。除此之外,在CVS里你不能用拥有同样名字但是没有继承老版本历史或者根本没有关系的文件替换一个已经纳入系统的文件。在Subversion中,你可以增加(add)、删除(delete)、复制(copy)和重命名(rename),无论是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。(3)自动提交一个提交动作,不是全部更新到了档案库中,就是不完全更新。这允许开发人员以逻辑区间建立并提交变动,以防止当部分提交成功时出现的问题。(4)纳入版本控管的元数据每一个文件与目录都附有一組属性关键字并和属性值相关联。你可以创建, 并儲存任何你要的Key/Value对。 属性是随着时间来作版本控管的,就像文件內容一样。(5)选择不同的网络层Subversion 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制。 Subversion 可以作为一个扩展模块嵌入到Apache HTTP 服务器中。这个为Subversion提供了非常先进的稳定性和协同工作能力,除此之外还提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及文件库浏览等等。还有一个轻量级的独立Subversion服务器, 使用的是自定义的通信协议, 可以很容易地通过 ssh 以 tunnel 方式使用。(6)一致的数据处理方式Subversion 使用二进制差异算法来异表示文件的差异, 它对文字(人类可理解的)与二进制文件(人类无法理解的) 两类的文件都一视同仁。 这两类的文件都同样地以压缩形式储存在档案库中, 而且文件差异是以两个方向在网络上传输的。(7)有效的分支(branch)与标签(tag)在分支与标签上的消耗并不必一定要与项目大小成正比。 Subversion 建立分支与标签的方法, 就只是复制该项目, 使用的方法就类似于硬连接(hard-link)。 所以这些操作只会花费很小, 而且是固定的时间。(8)HackabilitySubversion没有任何的历史包袱; 它主要是一群共用的 C 程序库, 具有定义完善的API。这使得 Subversion 便于维护, 并且可被其它应用程序与程序语言使用。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧