parse whois data dfferent
This commit is contained in:
parent
b857ddba48
commit
a2147eef8c
|
@ -208,7 +208,7 @@ export default class MString {
|
|||
cIter += 3;
|
||||
for (; cIter < this.txt.length
|
||||
&& !MString.isWhiteSpace(this.txt[cIter])
|
||||
&& (!enclosure || this.txt[cIter] !== ')'); cIter += 1
|
||||
&& (!enclosure || this.txt[cIter] !== ')'); cIter += 1
|
||||
);
|
||||
if (cIter < this.iter + 4) {
|
||||
return null;
|
||||
|
|
|
@ -119,6 +119,9 @@ export function getIPv6Subnet(ip) {
|
|||
* @return [start, end] with numerical IPs (32bit integer)
|
||||
*/
|
||||
function ip4RangeStrToRangeNum(range) {
|
||||
if (!range) {
|
||||
return null;
|
||||
}
|
||||
const [start, end] = range.split('-')
|
||||
.map(ip4ToNum);
|
||||
if (!start || !end || start > end) {
|
||||
|
|
|
@ -18,13 +18,13 @@ function cIDRofWhois(ip, whoisData) {
|
|||
return whoisData.inet6num
|
||||
|| (whoisData.range && !whoisData.range.includes('-') && whoisData.range)
|
||||
|| whoisData.route
|
||||
|| 'N/A';
|
||||
|| null;
|
||||
}
|
||||
const { range } = whoisData;
|
||||
if (range.includes('/') && !range.includes('-')) {
|
||||
if (range && range.includes('/') && !range.includes('-')) {
|
||||
return range;
|
||||
}
|
||||
return ip4InRangeToCIDR(ip, range) || 'N/A';
|
||||
return ip4InRangeToCIDR(ip, range) || null;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -63,7 +63,7 @@ function parseWhois(ip, whoisData) {
|
|||
return {
|
||||
ip,
|
||||
country: countryFromWhois(whoisData),
|
||||
cidr: cIDRofWhois(ip, whoisData),
|
||||
cidr: cIDRofWhois(ip, whoisData) || 'N/A',
|
||||
org: orgFromWhois(whoisData),
|
||||
descr: whoisData.descr || 'N/A',
|
||||
asn: whoisData.asn || 'N/A',
|
||||
|
@ -71,7 +71,7 @@ function parseWhois(ip, whoisData) {
|
|||
}
|
||||
|
||||
async function whois(ip) {
|
||||
let whoisData = await whoiser.ip(ip);
|
||||
const whoisData = await whoiser.ip(ip);
|
||||
if (whoisData.ReferralServer) {
|
||||
let referral = whoisData.ReferralServer;
|
||||
const prot = referral.indexOf('://');
|
||||
|
@ -79,9 +79,17 @@ async function whois(ip) {
|
|||
referral = referral.slice(prot + 3);
|
||||
}
|
||||
try {
|
||||
whoisData = await whoiser.ip(ip, {
|
||||
/*
|
||||
* if referral whois server produces any error
|
||||
* fallback to initial one
|
||||
*/
|
||||
const refWhoisData = await whoiser.ip(ip, {
|
||||
host: referral,
|
||||
});
|
||||
const refParsedData = parseWhois(ip, refWhoisData);
|
||||
if (refParsedData.cidr !== 'N/A') {
|
||||
return refParsedData;
|
||||
}
|
||||
} catch {
|
||||
// nothing
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue