我想从主机名获得高级域名(不是子域)。其想法是从用户的主机名中“猜测”ISP的名称。想法?
// no ISP when it's an IP
115.20.106.216 => null
// in these cases the domain name should be the ISP name
108-81-122-61.lightspeed.frokca.sbcglobal.net => sbcglobal.net
61-22-86-252.static.trlk.ca.charter.com => charter.com
c-28-8-222-102.hsd1.ca.comcast.net => comcast.net
CPE-128-122-18-181.hdbq1.win.bigpond.net.au => bigpond.net.au
dhcp-108-168-82-106.cable.user.start.ca => start.ca
ip68-100-26-186.dc.dc.cox.net => cox.net
ip-108-85-1-22.web.vodafone.de => vodafone.de
pool-68-86-186-222.washdc.fios.verizon.net => verizon.net
s51865a4f.adsl.online.nl => online.nl
// in these cases it's not very obvious
c-208-168-15-86.wifi.ties.k12.mn.us => k12.mn.us ?
cpe-66-181-81-222.tx.res.rr.com => res.rr.com ?注意:所有IP地址都是随机的。
像bigpond.net.au这样的东西是三级的.主域有时是2级,有时是3级.
发布于 2020-10-26 17:25:11
我找到了这个工具,它做的正是我想要的https://github.com/rvflash/publicsuffix-sql
它使用publicsuffix.org,它维护一个公共后缀列表,如.com、.co.uk和pvt.k12.ma.us。
使用该工具提供的函数,我们可以简单地执行以下操作:
select DOMAIN('115.20.106.216'); -- null
select DOMAIN('cpe-45-37-121-56.nc.res.rr.com'); -- rr.com
select DOMAIN('CPE00fc8d22x-CM023d22f4f0.cpe.net.cable.rogers.com'); -- rogers.com
select DOMAIN('c-208-168-15-86.wifi.ties.k12.mn.us'); -- k12.mn.us
select DOMAIN('CPE-128-122-18-181.hdbq1.win.bigpond.net.au'); -- bigpond.net.au https://dba.stackexchange.com/questions/278529
复制相似问题