我应该如何构建一个数据库,在那里我需要存储IP(作为INT无符号)地址、使用它们的扇区和机器名称。它将用于快速搜索可用的IP。众所周知,每个网络的地址不会超过254,我应该用列表创建一个单独的表吗?
[编辑]
我想到了另一件事。如果我现在已经知道网络将从192.168.x.1到192.168.x.254,有时我想看看哪个IP是可用的,或者哪个IP被设置为特定的机器,我应该用地址填写表格,然后将它们关联起来,创建一个列表,将使用的和可用的地址关联起来吗?
[编辑]
使用nbtscan后,我想我可以得到我想要的数据。命令
nbtscan 192.168.0.1-254 -t 20000
给我:
Doing NBT name scan for addresses from 192.168.0.1-254
IP address NetBIOS Name Server User MAC address
------------------------------------------------------------------------------
192.168.0.135 EREBOS <server> EREBOS 00-00-00-00-00-00
192.168.0.130 CHAOS <unknown> 00-00-00-00-00-00
一个好的结果,但是:
nbtscan -s , 192.168.0.1-254 -t 20000
给我:
192.168.0.130,CHAOS ,,<unknown>,00-00-00-00-00-00
192.168.0.135,EREBOS ,<server>,EREBOS ,00-00-00-00-00-00
现在我使用的是:
<?php
header('Content-type: text/csv');
header('Content-disposition: attachment;filename=ips.csv');
include_once "conn.php";
$iprange = "192.168.0.1-254";
$timeout = 20000;
$separator = ",";
$strre = shell_exec("nbtscan -s $separator $iprange -t $timeout");
echo preg_replace('/ +/',',', $strre);
生成一个.csv文件,我可以导入MySQL。这是一个好的解决方案吗?
我不知道为什么,但是nbtscan给出了不同数量的列。第一行有6个,第二行有7个。这太可怕了!有人知道怎么解决吗?
您是否考虑过使用SolarWinds的免费IP地址跟踪器?
http://www.solarwinds.com/downloads/
我以前用过它,它很适合我的需要。为什么要重新发明轮子?