如何比较两个CSV文件?

时间:2015-10-27 17:56:25

标签: java csv geolocation

我有两个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 

1 个答案:

答案 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,在您的对象集合中搜索匹配项,然后输出您需要的内容。