我正在尝试从snort查看IPS警报,警报已通过barnyard2插入数据库中。https://github.com/firnsy/barnyard2
当我使用时,请SELECT ip_src from iphdr ;
从postgresql取回它。
ip_src
------------
2886730039
2886730039
1815870597
1815870597
3325194354
3325194354
是否可以安全地假设这些是某种索引号?它显然不是标准的IPv4格式。
创建表时,还将创建索引。
CREATE TABLE iphdr ( sid INT4 NOT NULL,
cid INT8 NOT NULL,
ip_src INT8 NOT NULL,
ip_dst INT8 NOT NULL,
ip_ver INT2,
ip_hlen INT2,
ip_tos INT2,
ip_len INT4,
ip_id INT4,
ip_flags INT2,
ip_off INT4,
ip_ttl INT2,
ip_proto INT2 NOT NULL,
ip_csum INT4,
PRIMARY KEY (sid,cid));
CREATE INDEX ip_src_idx ON iphdr (ip_src);
CREATE INDEX ip_dst_idx ON iphdr (ip_dst);
如何查询该表并从该索引中获取实际IP地址?
一个明显的解决方案是使用适当的数据类型,即Postgresinet
数据类型。
CREATE TABLE iphdr ( sid INT4 NOT NULL,
cid INT8 NOT NULL,
ip_src inet NOT NULL,
ip_dst inet NOT NULL,
这将允许您按字面意义插入网络地址:
insert into iphdr (ip_src, ip_dst) values ('192.168.0.1','192.168.0.2')
如果您使用此数据类型,则有几个专门的功能可以帮助您使用它们,例如在where子句中。
如果您无法控制传入的数据,这些数据类型仍然可以帮助您以可识别的格式显示值:
SELECT '0.0.0.0'::inet + ip_src as ipsrc,'0.0.0.0'::inet + ip_dst as ipdst,
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句