Access/SQL Table 解析器

Access/SQL Table Parser

我正在尝试获取 IP 和主机名列表并将其与 netstat pull 相关联。 目前从netstat拉取的相关信息是(Source IP, Source Port, and Destination IP)。但是 netstat 不会在我正在使用的环境中提取主机名。所以我创建了第二个 table 与 IP 和主机名相关。此网络中没有 DNS,因此假设此 table 关系是唯一可能的方法。目前我的查询如下:

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

我遇到的主要问题之一是将主机名列明确链接到源 IP,并将单独的主机名链接到目标 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 命令。任何想法都有帮助,感谢您的宝贵时间。

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

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