Access / SQL Table Parser

时间:2017-03-24 16:33:57

标签: sql filesystems access netstat

我试图获取IP和主机名列表并将其与netstat拉取相关联。 目前来自netstat pull的相关信息是(源IP,源端口和目标IP)。但是netstat并没有在我正在使用的环境中提取主机名。所以我创建了第二个与IP和主机名相关的表。此网络中没有DNS,因此假设此表关系是唯一可行的方法。目前我的查询如下:

SELECT 
  IP_network.IP_src AS [Source IP]
  IP_lookup.Hostname AS [Source Hostname]
  IP_network.Port_src AS [Source Port]
  IP_network.IP_dst AS [Destination IP]
  IP_lookup.Hostname AS [Destination Hostname]
FROM IP_network
INNER JOIN IP_lookup ON IP_network.IP_src = IP_lookup.IP

我遇到的主要问题之一是将Hostname列与Source IP明确链接,并将单独的Hostname链接到Destination IP。例如,

Source IP     Source Host     Source Port     Destination IP     Destination Hostname
----------    ------------    ------------    ---------------    ---------------------
127.0.0.1                     22              192.168.0.1                   
10.10.10.1     Host1          22              127.0.0.1          Host1
10.50.10.1     Host2          23              10.10.50.1         Host2
10.50.10.1     Host3          23              10.10.50.1         Host3

我还想让任何NULL主机名读作' UNK',但我无法在Access中使用IsNull命令。任何想法都有帮助,谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

您可以使用不同的别名多次加入同一个表。像这样:

SELECT 
  ipne.IP_src AS [Source IP]
  iplo1.Hostname AS [Source Hostname]
  ipne.Port_src AS [Source Port]
  ipne.IP_dst AS [Destination IP]
  iplo2.Hostname AS [Destination Hostname]
FROM IP_network AS ipne
  INNER JOIN IP_lookup AS iplo1 ON iplo1.IP = ipne.IP_src
  INNER JOIN IP_lookup AS iplo2 ON iplo2.IP = ipne.IP_dst

关于空值,请查看以下问题:coalesce alternative in Access SQL