improved whois

This commit is contained in:
Joern Muehlencord
2022-02-25 13:13:27 +01:00
parent e82a4cadd4
commit d427956422
5 changed files with 680 additions and 214 deletions

View File

@ -24,7 +24,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
/** /**
*
* @author Joern Muehlencord (joern@muehlencord.de) * @author Joern Muehlencord (joern@muehlencord.de)
*/ */
public class ArinWhoisParser extends AbstractWhoisParser implements WhoisParser { public class ArinWhoisParser extends AbstractWhoisParser implements WhoisParser {
@ -46,6 +45,12 @@ public class ArinWhoisParser extends AbstractWhoisParser implements WhoisParser
@Override @Override
public WhoisInformation parseWhoIsString(String whoisString) throws WhoisException { public WhoisInformation parseWhoIsString(String whoisString) throws WhoisException {
whoisInformation = new WhoisInformation(); whoisInformation = new WhoisInformation();
// if re-allocated just return empty whoisInformation because this RIR is not responsible
if (whoisString.contains("Allocated to LACNIC")) {
throw new WhoisException("Allocated to LACNIC");
}
whoisInformation.setResponseString(whoisString); whoisInformation.setResponseString(whoisString);
if (whoisString.contains(START_STRING)) { if (whoisString.contains(START_STRING)) {

View File

@ -22,7 +22,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
/** /**
*
* @author Joern Muehlencord (joern@muehlencord.de) * @author Joern Muehlencord (joern@muehlencord.de)
*/ */
public class DefaultWhoisParser extends AbstractWhoisParser implements WhoisParser { public class DefaultWhoisParser extends AbstractWhoisParser implements WhoisParser {
@ -38,6 +37,11 @@ public class DefaultWhoisParser extends AbstractWhoisParser implements WhoisPars
@Override @Override
public WhoisInformation parseWhoIsString(String whoisString) throws WhoisException { public WhoisInformation parseWhoIsString(String whoisString) throws WhoisException {
// if re-allocated just return empty whoisInformation because this RIR is not responsible
if (whoisString.contains("Allocated to LACNIC")) {
throw new WhoisException("Allocated to LACNIC");
}
whoisInformation = new WhoisInformation(); whoisInformation = new WhoisInformation();
whoisInformation.setResponseString(whoisString); whoisInformation.setResponseString(whoisString);
// split by blank lines to identify blocks // split by blank lines to identify blocks

View File

@ -48,6 +48,7 @@ public class Whois {
WHOIS_SERVERS.add("whois.afrinic.net"); WHOIS_SERVERS.add("whois.afrinic.net");
WHOIS_SERVERS.add("whois.apnic.net"); WHOIS_SERVERS.add("whois.apnic.net");
WHOIS_SERVERS.add("whois.arin.net"); WHOIS_SERVERS.add("whois.arin.net");
WHOIS_SERVERS.add("whois.lacnic.net");
} }
/** /**
@ -79,7 +80,7 @@ public class Whois {
} }
/** /**
* reads and parses the inforomation for the given ip address from the given whoisserver * reads and parses the information for the given ip address from the given whoisserver
* *
* @param whoIsServer the whoisClient server to use * @param whoIsServer the whoisClient server to use
* @param ip the ip to query whoisClient data for * @param ip the ip to query whoisClient data for

View File

@ -15,11 +15,12 @@
*/ */
package de.muehlencord.shared.network.whois; package de.muehlencord.shared.network.whois;
import de.muehlencord.shared.network.BaseTest;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import de.muehlencord.shared.network.BaseTest;
import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -76,8 +77,8 @@ public class WhoisTest extends BaseTest {
} }
@Test @Test
@Disabled // @Disabled
public void testUnkown() throws WhoisException { public void testUnknown() throws WhoisException {
Whois whoIsClient = new Whois(); Whois whoIsClient = new Whois();
// whoIsClient.execute("whois.arin.net", "174.139.180.10"); // whoIsClient.execute("whois.arin.net", "174.139.180.10");
// whoIsClient.execute("whois.twnic.net", "60.250.38.39"); // whoIsClient.execute("whois.twnic.net", "60.250.38.39");
@ -86,7 +87,10 @@ public class WhoisTest extends BaseTest {
// whoIsClient.execute("whois.apnic.net", "182.72.111.26"); // whoIsClient.execute("whois.apnic.net", "182.72.111.26");
// whoIsClient.execute("whois.ripe.net", "213.55.95.62"); // Transferred to Afrinic // whoIsClient.execute("whois.ripe.net", "213.55.95.62"); // Transferred to Afrinic
// whoIsClient.execute("whois.afrinic.net", "213.55.95.62"); // whoIsClient.execute("whois.afrinic.net", "213.55.95.62");
whoIsClient.execute("whois.arin.net", "32.64.68.229"); // whoIsClient.execute("whois.arin.net", "32.64.68.229");
// WhoisInformation info = whoIsClient.execute("whois.lacnic.net", "179.43.168.126");
WhoisInformation info = whoIsClient.execute("179.43.168.126");
System.out.println (info);
} }
@Test @Test

View File

@ -0,0 +1,452 @@
% Joint Whois - whois.lacnic.net
% This server accepts single ASN, IPv4 or IPv6 queries
% LACNIC resource: whois.lacnic.net
% Copyright LACNIC lacnic.net
% The data below is provided for information purposes
% and to assist persons in obtaining information about or
% related to AS and IP numbers registrations
% By submitting a whois query, you agree to use this data
% only for lawful purposes.
% 2022-02-25 08:42:23 (-03 -03:00)
inetnum: 179.43.128.0/18
status: allocated
aut-num: AS51852
owner: PRIVATE LAYER INC
ownerid: PA-PLIN-LACNIC
responsible: Milciades Garcia
address: Torres De Las Americas, Torre C, 0, Suite 1404, Floor 14
address: 00000 - Panama -
country: PA
phone: +41 43 5082295
owner-c: MIG23
tech-c: MIG23
abuse-c: MIG23
inetrev: 179.43.128.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
inetrev: 179.43.129.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM [lame - not published]
nsstat: 20220224 QREFUSED
nslastaa: 20191008
inetrev: 179.43.130.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.131.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM [lame - not published]
nsstat: 20220224 QREFUSED
nslastaa: 20191008
inetrev: 179.43.132.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.133.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.134.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.140.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.141.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.144.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.142.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM [lame - not published]
nsstat: 20220224 QREFUSED
nslastaa: 20191008
inetrev: 179.43.143.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.150.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.151.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
inetrev: 179.43.145.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.155.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.157.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
inetrev: 179.43.182.0/24
nserver: NS1.CURTIR.ME [lame - not published]
nsstat: 20220225 UH
nslastaa: 20190327
nserver: NS2.CURTIR.ME [lame - not published]
nsstat: 20220225 UH
nslastaa: 20190327
inetrev: 179.43.183.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.187.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.188.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.190.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.191.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.161.0/24
nserver: DNS01.PRIVATELAYER.COM [lame - not published]
nsstat: 20220225 NOT SYNC ZONE
nslastaa: 20210211
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.146.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.160.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
inetrev: 179.43.148.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.152.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.162.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.169.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.178.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
inetrev: 179.43.139.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.163.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.165.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM [lame - not published]
nsstat: 20220225 QREFUSED
nslastaa: 20150617
inetrev: 179.43.166.0/24
nserver: NS-160.AWSDNS-20.COM [lame - not published]
nsstat: 20220224 QREFUSED
nslastaa: 20150425
nserver: NS-1647.AWSDNS-13.CO.UK [lame - not published]
nsstat: 20220224 QREFUSED
nslastaa: 20150425
inetrev: 179.43.167.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.168.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.176.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.149.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.181.0/24
nserver: NS1.LEADSPLANOSDESAUDE.COM.BR [lame - not published]
nsstat: 20220224 UH
nslastaa: 20150727
nserver: NS2.LEADSPLANOSDESAUDE.COM.BR [lame - not published]
nsstat: 20220224 UH
nslastaa: 20150727
inetrev: 179.43.154.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.184.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.185.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.186.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.172.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.170.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
inetrev: 179.43.156.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.189.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
inetrev: 179.43.164.0/24
nserver: NS-437.AWSDNS-54.COM [lame - not published]
nsstat: 20220224 QREFUSED
nslastaa: 20150424
nserver: NS-1214.AWSDNS-23.ORG [lame - not published]
nsstat: 20220224 QREFUSED
nslastaa: 20150424
inetrev: 179.43.171.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.177.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.180.0/24
nserver: DNS01.PRIVATELAYER.COM [lame - not published]
nsstat: 20220225 NOT SYNC ZONE
nslastaa: 20201124
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.158.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.159.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220221 AA
nslastaa: 20220221
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220221 AA
nslastaa: 20220221
inetrev: 179.43.147.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220223 AA
nslastaa: 20220223
inetrev: 179.43.173.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220225 AA
nslastaa: 20220225
inetrev: 179.43.174.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
inetrev: 179.43.175.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220222 AA
nslastaa: 20220222
inetrev: 179.43.179.0/24
nserver: DNS01.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
nserver: DNS02.PRIVATELAYER.COM
nsstat: 20220224 AA
nslastaa: 20220224
created: 20131112
changed: 20151101
nic-hdl: MIG23
person: Milciades Garcia
e-mail: support@privatelayer.com
address: Edif. Ocean Business Plaza, 1404, Marbella
address: 00000 - Panama City -
country: PA
phone: +41 43 5082295
created: 20151023
changed: 20220206
% whois.lacnic.net accepts only direct match queries.
% Types of queries are: POCs, ownerid, CIDR blocks, IP
% and AS numbers.