我有两个CSV文件第一个IP地理位置CSV文件,第二个有日期时间和IP地址如何比较两个文件并使新的CSV文件有日期时间IP地址和IP位置(国家名称)。如何在java中制作它?
第一档
18102015 11:35:59 93.178.13.37:2065
18102015 11:36:00 93.178.13.37:2078
18102015 11:36:21 93.178.13.37:7251
18102015 11:37:05 222.35.153.160:502
18102015 11:37:05 222.35.153.160:5050
第二档
93.178.0.0 93.178.63.255 1571946496 1571962879 SA Saudi Arabia
93.178.64.0 93.178.127.255 1571962880 1571979263 RU Russian Federation
222.16.0.0 222.95.255.255 3725590528 3730833407 CN China
我想要结果:
18102015 11:35:59 93.178.13.37 2065 SA Saudi Arabia
18102015 11:36:00 93.178.13.37 2078 SA Saudi Arabia
18102015 11:36:21 93.178.13.37 7251 SA Saudi Arabia
18102015 11:37:05 222.35.153.160 5029 CN China
18102015 11:37:05 222.35.153.160 5050 CN China
答案 0 :(得分:0)
提示:
将虚线IP地址视为32位数的4个八位字节。例如,IP地址93.178.63.255实际上是(93 *(2 ^ 24))+(178 *(2 ^ 16))+(63 *(2 ^ 8))+ 255.算一算,你来了用一个代表IP地址的数字。
第二个文件具有IP范围(从低到高)。如果转换范围的低IP地址和高IP地址,您将得到两个数字。因此,如果您尝试检测某个IP地址(来自文件#1)是否在某个范围内(在文件#2中),则很简单。如果IP> = lowIP&& IP< = highIP它在范围内。
进一步的建议:解析文件#2并为每个文件创建对象。该对象最显着的是起始IP地址,结束IP地址和国家/地区。然后,您可以解析文件#1,在您的对象集合中搜索匹配项,然后输出您需要的内容。