我试图查看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地址?
发布于 2014-05-24 14:13:41
一个明显的解决方案是使用适当的数据类型(即数据类型 )
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,SQLFiddle演示
https://stackoverflow.com/questions/23845885
复制相似问题