whois-parser-next 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +80 -0
- data/CODE_OF_CONDUCT.md +30 -0
- data/CONTRIBUTING.md +80 -0
- data/GOVERNANCE.md +59 -0
- data/LICENSE.txt +22 -0
- data/MAINTAINERS.md +44 -0
- data/README.md +123 -0
- data/RELEASING.md +43 -0
- data/ROADMAP.md +59 -0
- data/SECURITY.md +41 -0
- data/lib/whois/parser/contact.rb +56 -0
- data/lib/whois/parser/errors.rb +46 -0
- data/lib/whois/parser/nameserver.rb +39 -0
- data/lib/whois/parser/registrar.rb +25 -0
- data/lib/whois/parser/super_struct.rb +50 -0
- data/lib/whois/parser/version.rb +6 -0
- data/lib/whois/parser.rb +447 -0
- data/lib/whois/parser_extensions/whois.rb +83 -0
- data/lib/whois/parser_extensions/whois_parser.rb +24 -0
- data/lib/whois/parser_extensions/whois_record.rb +236 -0
- data/lib/whois/parser_extensions.rb +3 -0
- data/lib/whois/parsers/base.rb +413 -0
- data/lib/whois/parsers/base_afilias.rb +144 -0
- data/lib/whois/parsers/base_afilias2.rb +145 -0
- data/lib/whois/parsers/base_cocca.rb +97 -0
- data/lib/whois/parsers/base_cocca2.rb +93 -0
- data/lib/whois/parsers/base_icann_compliant.rb +158 -0
- data/lib/whois/parsers/base_icb.rb +51 -0
- data/lib/whois/parsers/base_iisse.rb +113 -0
- data/lib/whois/parsers/base_nic_fr.rb +175 -0
- data/lib/whois/parsers/base_shared1.rb +112 -0
- data/lib/whois/parsers/base_shared2.rb +130 -0
- data/lib/whois/parsers/base_shared3.rb +131 -0
- data/lib/whois/parsers/base_unsupported_registry.rb +30 -0
- data/lib/whois/parsers/base_verisign.rb +106 -0
- data/lib/whois/parsers/base_whoisd.rb +150 -0
- data/lib/whois/parsers/blank.rb +35 -0
- data/lib/whois/parsers/capetown-whois.registry.net.za.rb +25 -0
- data/lib/whois/parsers/ccwhois.ksregistry.net.rb +25 -0
- data/lib/whois/parsers/ccwhois.verisign-grs.com.rb +25 -0
- data/lib/whois/parsers/coza-whois.registry.net.za.rb +25 -0
- data/lib/whois/parsers/durban-whois.registry.net.za.rb +25 -0
- data/lib/whois/parsers/example.rb +163 -0
- data/lib/whois/parsers/joburg-whois.registry.net.za.rb +25 -0
- data/lib/whois/parsers/kero.yachay.pe.rb +97 -0
- data/lib/whois/parsers/org-whois.registry.net.za.rb +25 -0
- data/lib/whois/parsers/registry_response_safety.rb +29 -0
- data/lib/whois/parsers/tvwhois.verisign-grs.com.rb +25 -0
- data/lib/whois/parsers/vunic.vu.rb +11 -0
- data/lib/whois/parsers/whois.1und1.info.rb +28 -0
- data/lib/whois/parsers/whois.35.com.rb +23 -0
- data/lib/whois/parsers/whois.aeda.net.ae.rb +65 -0
- data/lib/whois/parsers/whois.aero.rb +58 -0
- data/lib/whois/parsers/whois.afilias-grs.info.rb +33 -0
- data/lib/whois/parsers/whois.afilias-srs.net.rb +16 -0
- data/lib/whois/parsers/whois.afilias.net.rb +41 -0
- data/lib/whois/parsers/whois.amnic.net.rb +81 -0
- data/lib/whois/parsers/whois.ascio.com.rb +29 -0
- data/lib/whois/parsers/whois.ati.tn.rb +120 -0
- data/lib/whois/parsers/whois.auda.org.au.rb +12 -0
- data/lib/whois/parsers/whois.audns.net.au.rb +118 -0
- data/lib/whois/parsers/whois.ax.rb +64 -0
- data/lib/whois/parsers/whois.biz.rb +34 -0
- data/lib/whois/parsers/whois.bnnic.bn.rb +77 -0
- data/lib/whois/parsers/whois.cat.rb +75 -0
- data/lib/whois/parsers/whois.cctld.by.rb +98 -0
- data/lib/whois/parsers/whois.cctld.uz.rb +83 -0
- data/lib/whois/parsers/whois.cdmon.com.rb +23 -0
- data/lib/whois/parsers/whois.centralnic.com.rb +144 -0
- data/lib/whois/parsers/whois.cira.ca.rb +227 -0
- data/lib/whois/parsers/whois.cmc.iq.rb +25 -0
- data/lib/whois/parsers/whois.cnnic.cn.rb +108 -0
- data/lib/whois/parsers/whois.co.ca.rb +74 -0
- data/lib/whois/parsers/whois.co.pl.rb +82 -0
- data/lib/whois/parsers/whois.co.ug.rb +93 -0
- data/lib/whois/parsers/whois.comlaude.com.rb +113 -0
- data/lib/whois/parsers/whois.corporatedomains.com.rb +28 -0
- data/lib/whois/parsers/whois.denic.de.rb +164 -0
- data/lib/whois/parsers/whois.dk-hostmaster.dk.rb +88 -0
- data/lib/whois/parsers/whois.dns.be.rb +120 -0
- data/lib/whois/parsers/whois.dns.hr.rb +119 -0
- data/lib/whois/parsers/whois.dns.lu.rb +125 -0
- data/lib/whois/parsers/whois.dns.pl.rb +151 -0
- data/lib/whois/parsers/whois.dns.pt.rb +92 -0
- data/lib/whois/parsers/whois.domain-registry.nl.rb +133 -0
- data/lib/whois/parsers/whois.domainregistry.ie.rb +128 -0
- data/lib/whois/parsers/whois.domreg.lt.rb +68 -0
- data/lib/whois/parsers/whois.donuts.co.rb +59 -0
- data/lib/whois/parsers/whois.dot.cf.rb +71 -0
- data/lib/whois/parsers/whois.dot.tk.rb +70 -0
- data/lib/whois/parsers/whois.dotgov.gov.rb +58 -0
- data/lib/whois/parsers/whois.dotmobiregistry.net.rb +21 -0
- data/lib/whois/parsers/whois.dotpostregistry.net.rb +25 -0
- data/lib/whois/parsers/whois.dreamhost.com.rb +23 -0
- data/lib/whois/parsers/whois.educause.edu.rb +198 -0
- data/lib/whois/parsers/whois.eenet.ee.rb +72 -0
- data/lib/whois/parsers/whois.enom.com.rb +34 -0
- data/lib/whois/parsers/whois.eu.org.rb +58 -0
- data/lib/whois/parsers/whois.eu.rb +130 -0
- data/lib/whois/parsers/whois.fi.rb +119 -0
- data/lib/whois/parsers/whois.gandi.net.rb +36 -0
- data/lib/whois/parsers/whois.gg.rb +93 -0
- data/lib/whois/parsers/whois.godaddy.com.rb +42 -0
- data/lib/whois/parsers/whois.gov.za.rb +60 -0
- data/lib/whois/parsers/whois.hkirc.hk.rb +71 -0
- data/lib/whois/parsers/whois.iana.org.rb +102 -0
- data/lib/whois/parsers/whois.id.rb +26 -0
- data/lib/whois/parsers/whois.iedr.ie.rb +18 -0
- data/lib/whois/parsers/whois.iis.nu.rb +46 -0
- data/lib/whois/parsers/whois.iis.se.rb +26 -0
- data/lib/whois/parsers/whois.in.ua.rb +75 -0
- data/lib/whois/parsers/whois.inregistry.net.rb +27 -0
- data/lib/whois/parsers/whois.isnic.is.rb +70 -0
- data/lib/whois/parsers/whois.isoc.org.il.rb +75 -0
- data/lib/whois/parsers/whois.ja.net.rb +75 -0
- data/lib/whois/parsers/whois.je.rb +75 -0
- data/lib/whois/parsers/whois.jprs.jp.rb +103 -0
- data/lib/whois/parsers/whois.kenic.or.ke.rb +93 -0
- data/lib/whois/parsers/whois.kg.rb +77 -0
- data/lib/whois/parsers/whois.kr.rb +79 -0
- data/lib/whois/parsers/whois.markmonitor.com.rb +36 -0
- data/lib/whois/parsers/whois.marnet.mk.rb +20 -0
- data/lib/whois/parsers/whois.monic.mo.rb +83 -0
- data/lib/whois/parsers/whois.museum.rb +79 -0
- data/lib/whois/parsers/whois.mx.rb +16 -0
- data/lib/whois/parsers/whois.mynic.my.rb +86 -0
- data/lib/whois/parsers/whois.na-nic.com.na.rb +21 -0
- data/lib/whois/parsers/whois.nc.rb +122 -0
- data/lib/whois/parsers/whois.netcom.cm.rb +54 -0
- data/lib/whois/parsers/whois.networksolutions.com.rb +37 -0
- data/lib/whois/parsers/whois.nic.ac.rb +33 -0
- data/lib/whois/parsers/whois.nic.af.rb +32 -0
- data/lib/whois/parsers/whois.nic.ag.rb +33 -0
- data/lib/whois/parsers/whois.nic.ai.rb +62 -0
- data/lib/whois/parsers/whois.nic.ar.rb +54 -0
- data/lib/whois/parsers/whois.nic.art.rb +9 -0
- data/lib/whois/parsers/whois.nic.as.rb +73 -0
- data/lib/whois/parsers/whois.nic.asia.rb +112 -0
- data/lib/whois/parsers/whois.nic.at.rb +68 -0
- data/lib/whois/parsers/whois.nic.best.rb +9 -0
- data/lib/whois/parsers/whois.nic.bj.rb +127 -0
- data/lib/whois/parsers/whois.nic.bo.rb +82 -0
- data/lib/whois/parsers/whois.nic.business.rb +8 -0
- data/lib/whois/parsers/whois.nic.cat.rb +23 -0
- data/lib/whois/parsers/whois.nic.cd.rb +38 -0
- data/lib/whois/parsers/whois.nic.cfd.rb +9 -0
- data/lib/whois/parsers/whois.nic.ch.rb +109 -0
- data/lib/whois/parsers/whois.nic.chat.rb +10 -0
- data/lib/whois/parsers/whois.nic.ci.rb +74 -0
- data/lib/whois/parsers/whois.nic.cl.rb +76 -0
- data/lib/whois/parsers/whois.nic.cloud.rb +15 -0
- data/lib/whois/parsers/whois.nic.club.rb +15 -0
- data/lib/whois/parsers/whois.nic.co.rb +25 -0
- data/lib/whois/parsers/whois.nic.college.rb +25 -0
- data/lib/whois/parsers/whois.nic.coop.rb +70 -0
- data/lib/whois/parsers/whois.nic.cr.rb +64 -0
- data/lib/whois/parsers/whois.nic.cx.rb +25 -0
- data/lib/whois/parsers/whois.nic.cz.rb +42 -0
- data/lib/whois/parsers/whois.nic.delivery.rb +9 -0
- data/lib/whois/parsers/whois.nic.design.rb +30 -0
- data/lib/whois/parsers/whois.nic.direct.rb +9 -0
- data/lib/whois/parsers/whois.nic.dm.rb +39 -0
- data/lib/whois/parsers/whois.nic.domains.rb +8 -0
- data/lib/whois/parsers/whois.nic.dz.rb +67 -0
- data/lib/whois/parsers/whois.nic.ec.rb +44 -0
- data/lib/whois/parsers/whois.nic.es.rb +114 -0
- data/lib/whois/parsers/whois.nic.fm.rb +18 -0
- data/lib/whois/parsers/whois.nic.fo.rb +69 -0
- data/lib/whois/parsers/whois.nic.fr.rb +25 -0
- data/lib/whois/parsers/whois.nic.fun.rb +13 -0
- data/lib/whois/parsers/whois.nic.games.rb +9 -0
- data/lib/whois/parsers/whois.nic.gd.rb +31 -0
- data/lib/whois/parsers/whois.nic.gl.rb +49 -0
- data/lib/whois/parsers/whois.nic.group.rb +8 -0
- data/lib/whois/parsers/whois.nic.gs.rb +31 -0
- data/lib/whois/parsers/whois.nic.hn.rb +49 -0
- data/lib/whois/parsers/whois.nic.host.rb +37 -0
- data/lib/whois/parsers/whois.nic.ht.rb +25 -0
- data/lib/whois/parsers/whois.nic.hu.rb +78 -0
- data/lib/whois/parsers/whois.nic.icu.rb +12 -0
- data/lib/whois/parsers/whois.nic.im.rb +66 -0
- data/lib/whois/parsers/whois.nic.ink.rb +12 -0
- data/lib/whois/parsers/whois.nic.io.rb +52 -0
- data/lib/whois/parsers/whois.nic.ir.rb +70 -0
- data/lib/whois/parsers/whois.nic.it.rb +159 -0
- data/lib/whois/parsers/whois.nic.jobs.rb +25 -0
- data/lib/whois/parsers/whois.nic.ki.rb +25 -0
- data/lib/whois/parsers/whois.nic.kz.rb +69 -0
- data/lib/whois/parsers/whois.nic.la.rb +32 -0
- data/lib/whois/parsers/whois.nic.li.rb +68 -0
- data/lib/whois/parsers/whois.nic.life.rb +10 -0
- data/lib/whois/parsers/whois.nic.link.rb +13 -0
- data/lib/whois/parsers/whois.nic.lk.rb +109 -0
- data/lib/whois/parsers/whois.nic.ltd.rb +8 -0
- data/lib/whois/parsers/whois.nic.lv.rb +69 -0
- data/lib/whois/parsers/whois.nic.ly.rb +78 -0
- data/lib/whois/parsers/whois.nic.market.rb +8 -0
- data/lib/whois/parsers/whois.nic.md.rb +101 -0
- data/lib/whois/parsers/whois.nic.me.rb +85 -0
- data/lib/whois/parsers/whois.nic.mg.rb +35 -0
- data/lib/whois/parsers/whois.nic.ms.rb +37 -0
- data/lib/whois/parsers/whois.nic.mu.rb +25 -0
- data/lib/whois/parsers/whois.nic.mw.rb +33 -0
- data/lib/whois/parsers/whois.nic.mx.rb +79 -0
- data/lib/whois/parsers/whois.nic.name.rb +68 -0
- data/lib/whois/parsers/whois.nic.net.bw.rb +11 -0
- data/lib/whois/parsers/whois.nic.net.ng.rb +27 -0
- data/lib/whois/parsers/whois.nic.net.sa.rb +74 -0
- data/lib/whois/parsers/whois.nic.net.sb.rb +35 -0
- data/lib/whois/parsers/whois.nic.news.rb +8 -0
- data/lib/whois/parsers/whois.nic.nf.rb +50 -0
- data/lib/whois/parsers/whois.nic.ninja.rb +8 -0
- data/lib/whois/parsers/whois.nic.one.rb +41 -0
- data/lib/whois/parsers/whois.nic.online.rb +39 -0
- data/lib/whois/parsers/whois.nic.org.uy.rb +75 -0
- data/lib/whois/parsers/whois.nic.plus.rb +8 -0
- data/lib/whois/parsers/whois.nic.pm.rb +25 -0
- data/lib/whois/parsers/whois.nic.pr.rb +84 -0
- data/lib/whois/parsers/whois.nic.priv.at.rb +62 -0
- data/lib/whois/parsers/whois.nic.pub.rb +8 -0
- data/lib/whois/parsers/whois.nic.pw.rb +25 -0
- data/lib/whois/parsers/whois.nic.re.rb +29 -0
- data/lib/whois/parsers/whois.nic.rocks.rb +8 -0
- data/lib/whois/parsers/whois.nic.run.rb +8 -0
- data/lib/whois/parsers/whois.nic.sh.rb +25 -0
- data/lib/whois/parsers/whois.nic.site.rb +62 -0
- data/lib/whois/parsers/whois.nic.sl.rb +80 -0
- data/lib/whois/parsers/whois.nic.sm.rb +84 -0
- data/lib/whois/parsers/whois.nic.sn.rb +119 -0
- data/lib/whois/parsers/whois.nic.so.rb +71 -0
- data/lib/whois/parsers/whois.nic.software.rb +9 -0
- data/lib/whois/parsers/whois.nic.solutions.rb +9 -0
- data/lib/whois/parsers/whois.nic.space.rb +25 -0
- data/lib/whois/parsers/whois.nic.st.rb +76 -0
- data/lib/whois/parsers/whois.nic.store.rb +15 -0
- data/lib/whois/parsers/whois.nic.studio.rb +8 -0
- data/lib/whois/parsers/whois.nic.systems.rb +8 -0
- data/lib/whois/parsers/whois.nic.tc.rb +25 -0
- data/lib/whois/parsers/whois.nic.tech.rb +33 -0
- data/lib/whois/parsers/whois.nic.technology.rb +8 -0
- data/lib/whois/parsers/whois.nic.tel.rb +25 -0
- data/lib/whois/parsers/whois.nic.tg.rb +49 -0
- data/lib/whois/parsers/whois.nic.tl.rb +32 -0
- data/lib/whois/parsers/whois.nic.tm.rb +101 -0
- data/lib/whois/parsers/whois.nic.today.rb +8 -0
- data/lib/whois/parsers/whois.nic.tools.rb +9 -0
- data/lib/whois/parsers/whois.nic.tr.rb +159 -0
- data/lib/whois/parsers/whois.nic.travel.rb +25 -0
- data/lib/whois/parsers/whois.nic.tv.rb +15 -0
- data/lib/whois/parsers/whois.nic.uk.rb +177 -0
- data/lib/whois/parsers/whois.nic.us.rb +25 -0
- data/lib/whois/parsers/whois.nic.ve.rb +94 -0
- data/lib/whois/parsers/whois.nic.vg.rb +16 -0
- data/lib/whois/parsers/whois.nic.video.rb +10 -0
- data/lib/whois/parsers/whois.nic.vip.rb +13 -0
- data/lib/whois/parsers/whois.nic.website.rb +9 -0
- data/lib/whois/parsers/whois.nic.wf.rb +29 -0
- data/lib/whois/parsers/whois.nic.win.rb +10 -0
- data/lib/whois/parsers/whois.nic.work.rb +10 -0
- data/lib/whois/parsers/whois.nic.works.rb +8 -0
- data/lib/whois/parsers/whois.nic.world.rb +10 -0
- data/lib/whois/parsers/whois.nic.xxx.rb +42 -0
- data/lib/whois/parsers/whois.nic.xyz.rb +25 -0
- data/lib/whois/parsers/whois.nixiregistry.in.rb +15 -0
- data/lib/whois/parsers/whois.norid.no.rb +61 -0
- data/lib/whois/parsers/whois.ovh.com.rb +12 -0
- data/lib/whois/parsers/whois.pairnic.com.rb +28 -0
- data/lib/whois/parsers/whois.pandi.or.id.rb +25 -0
- data/lib/whois/parsers/whois.pir.org.rb +90 -0
- data/lib/whois/parsers/whois.pnina.ps.rb +31 -0
- data/lib/whois/parsers/whois.register.bg.rb +86 -0
- data/lib/whois/parsers/whois.register.com.rb +30 -0
- data/lib/whois/parsers/whois.register.si.rb +73 -0
- data/lib/whois/parsers/whois.registre.ma.rb +65 -0
- data/lib/whois/parsers/whois.registro.br.rb +126 -0
- data/lib/whois/parsers/whois.registry.co.rb +19 -0
- data/lib/whois/parsers/whois.registry.gy.rb +32 -0
- data/lib/whois/parsers/whois.registry.hm.rb +72 -0
- data/lib/whois/parsers/whois.registry.om.rb +40 -0
- data/lib/whois/parsers/whois.registry.qa.rb +25 -0
- data/lib/whois/parsers/whois.ricta.org.rw.rb +16 -0
- data/lib/whois/parsers/whois.ripe.net.rb +68 -0
- data/lib/whois/parsers/whois.rnids.rs.rb +135 -0
- data/lib/whois/parsers/whois.rotld.ro.rb +65 -0
- data/lib/whois/parsers/whois.rrpproxy.net.rb +32 -0
- data/lib/whois/parsers/whois.safenames.net.rb +48 -0
- data/lib/whois/parsers/whois.schlund.info.rb +34 -0
- data/lib/whois/parsers/whois.sgnic.sg.rb +92 -0
- data/lib/whois/parsers/whois.sk-nic.sk.rb +111 -0
- data/lib/whois/parsers/whois.smallregistry.net.rb +131 -0
- data/lib/whois/parsers/whois.srs.net.nz.rb +177 -0
- data/lib/whois/parsers/whois.sx.rb +127 -0
- data/lib/whois/parsers/whois.tcinet.ru.rb +114 -0
- data/lib/whois/parsers/whois.thnic.co.th.rb +80 -0
- data/lib/whois/parsers/whois.tld.ee.rb +134 -0
- data/lib/whois/parsers/whois.tld.sy.rb +34 -0
- data/lib/whois/parsers/whois.tonic.to.rb +100 -0
- data/lib/whois/parsers/whois.tonicregistry.to.rb +12 -0
- data/lib/whois/parsers/whois.trabis.gov.tr.rb +58 -0
- data/lib/whois/parsers/whois.tucows.com.rb +28 -0
- data/lib/whois/parsers/whois.twnic.net.tw.rb +72 -0
- data/lib/whois/parsers/whois.tznic.or.tz.rb +36 -0
- data/lib/whois/parsers/whois.ua.rb +242 -0
- data/lib/whois/parsers/whois.udag.net.rb +28 -0
- data/lib/whois/parsers/whois.uniregistry.net.rb +71 -0
- data/lib/whois/parsers/whois.usp.ac.fj.rb +72 -0
- data/lib/whois/parsers/whois.verisign-grs.com.rb +49 -0
- data/lib/whois/parsers/whois.vunic.vu.rb +14 -0
- data/lib/whois/parsers/whois.website.ws.rb +79 -0
- data/lib/whois/parsers/whois.wildwestdomains.com.rb +37 -0
- data/lib/whois/parsers/whois.yoursrs.com.rb +125 -0
- data/lib/whois/parsers/whois.za.net.rb +72 -0
- data/lib/whois/parsers/whois.za.org.rb +72 -0
- data/lib/whois/parsers/whois.zicta.zm.rb +13 -0
- data/lib/whois/parsers/whois1.nic.bi.rb +25 -0
- data/lib/whois/parsers/za_central_registry.rb +80 -0
- data/lib/whois/parsers.rb +1 -0
- data/lib/whois/safe_record.rb +170 -0
- data/lib/whois/scanners/base.rb +114 -0
- data/lib/whois/scanners/base_afilias.rb +51 -0
- data/lib/whois/scanners/base_cocca2.rb +58 -0
- data/lib/whois/scanners/base_icann_compliant.rb +45 -0
- data/lib/whois/scanners/base_iisse.rb +36 -0
- data/lib/whois/scanners/base_shared1.rb +31 -0
- data/lib/whois/scanners/base_shared2.rb +35 -0
- data/lib/whois/scanners/base_shared3.rb +37 -0
- data/lib/whois/scanners/base_whoisd.rb +44 -0
- data/lib/whois/scanners/iana.rb +89 -0
- data/lib/whois/scanners/scannable.rb +65 -0
- data/lib/whois/scanners/verisign.rb +100 -0
- data/lib/whois/scanners/whois.ati.tn.rb +32 -0
- data/lib/whois/scanners/whois.audns.net.au.rb +32 -0
- data/lib/whois/scanners/whois.cctld.by.rb +35 -0
- data/lib/whois/scanners/whois.centralnic.com.rb +32 -0
- data/lib/whois/scanners/whois.cira.ca.rb +72 -0
- data/lib/whois/scanners/whois.cnnic.cn.rb +42 -0
- data/lib/whois/scanners/whois.denic.de.rb +103 -0
- data/lib/whois/scanners/whois.dns.hr.rb +30 -0
- data/lib/whois/scanners/whois.domainregistry.ie.rb +51 -0
- data/lib/whois/scanners/whois.fi.rb +66 -0
- data/lib/whois/scanners/whois.nc.rb +32 -0
- data/lib/whois/scanners/whois.nic.cz.rb +22 -0
- data/lib/whois/scanners/whois.nic.it.rb +92 -0
- data/lib/whois/scanners/whois.pir.org.rb +17 -0
- data/lib/whois/scanners/whois.rnids.rs.rb +52 -0
- data/lib/whois/scanners/whois.smallregistry.net.rb +50 -0
- data/lib/whois/scanners/whois.srs.net.nz.rb +23 -0
- data/lib/whois/scanners/whois.sx.rb +37 -0
- data/lib/whois/scanners/whois.tld.ee.rb +47 -0
- data/lib/whois/scanners/whois.tucows.com.rb +23 -0
- data/lib/whois/scanners/whois.yoursrs.com.rb +24 -0
- data/lib/whois-parser.rb +10 -0
- metadata +507 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
# Parser for the whois.nic.name server.
|
|
17
|
+
#
|
|
18
|
+
# @note This parser is just a stub and provides only a few basic methods
|
|
19
|
+
# to check for domain availability and get domain status.
|
|
20
|
+
# Please consider to contribute implementing missing methods.
|
|
21
|
+
#
|
|
22
|
+
# @see Whois::Parsers::Example
|
|
23
|
+
# The Example parser for the list of all available methods.
|
|
24
|
+
#
|
|
25
|
+
class WhoisNicName < Base
|
|
26
|
+
|
|
27
|
+
property_supported :status do
|
|
28
|
+
content_for_scanner.scan(/Domain Status:\s+(.+?)\n/).flatten
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
property_supported :available? do
|
|
32
|
+
!!(content_for_scanner =~ /^No match/)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
property_supported :registered? do
|
|
36
|
+
!available?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
property_supported :created_on do
|
|
41
|
+
if content_for_scanner =~ /Created On: (.+)\n/
|
|
42
|
+
parse_time(::Regexp.last_match(1))
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
property_supported :updated_on do
|
|
47
|
+
if content_for_scanner =~ /Updated On: (.+)\n/
|
|
48
|
+
parse_time(::Regexp.last_match(1))
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
property_supported :expires_on do
|
|
53
|
+
if content_for_scanner =~ /Expires On: (.+)\n/
|
|
54
|
+
parse_time(::Regexp.last_match(1))
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
property_supported :nameservers do
|
|
60
|
+
content_for_scanner.scan(/Name Server:\s+(.+)\n/).flatten.map do |name|
|
|
61
|
+
Parser::Nameserver.new(:name => name.downcase)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require_relative 'base_cocca2'
|
|
2
|
+
|
|
3
|
+
module Whois
|
|
4
|
+
class Parsers
|
|
5
|
+
# Parser for the Botswana WHOIS service. Policy responses are intentionally
|
|
6
|
+
# left as unknown by BaseCocca2 instead of being inferred as registration
|
|
7
|
+
# or availability.
|
|
8
|
+
class WhoisNicNetBw < BaseCocca2
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base_cocca2'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
# Parser for the whois.nic.net.ng server.
|
|
17
|
+
class WhoisNicNetNg < BaseCocca2
|
|
18
|
+
|
|
19
|
+
property_supported :status do
|
|
20
|
+
list = Array.wrap(node("Domain Status")).map(&:downcase)
|
|
21
|
+
list.include?("available") ? :available : super()
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base'
|
|
11
|
+
require_relative 'registry_response_safety'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
module Whois
|
|
15
|
+
class Parsers
|
|
16
|
+
|
|
17
|
+
# Parser for the whois.nic.net.sa server.
|
|
18
|
+
#
|
|
19
|
+
# @note This parser is just a stub and provides only a few basic methods
|
|
20
|
+
# to check for domain availability and get domain status.
|
|
21
|
+
# Please consider to contribute implementing missing methods.
|
|
22
|
+
#
|
|
23
|
+
# @see Whois::Parsers::Example
|
|
24
|
+
# The Example parser for the list of all available methods.
|
|
25
|
+
#
|
|
26
|
+
class WhoisNicNetSa < Base
|
|
27
|
+
include RegistryResponseSafety
|
|
28
|
+
|
|
29
|
+
property_supported :status do
|
|
30
|
+
if available?
|
|
31
|
+
:available
|
|
32
|
+
elsif content_for_scanner.match?(/^Domain Name:\s*\S+/i)
|
|
33
|
+
:registered
|
|
34
|
+
else
|
|
35
|
+
:unknown
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
property_supported :available? do
|
|
40
|
+
!!(content_for_scanner =~ /^No Match for/)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
property_supported :registered? do
|
|
44
|
+
status == :registered
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
property_supported :created_on do
|
|
49
|
+
if content_for_scanner =~ /Created on: (.+)\n/
|
|
50
|
+
parse_time(::Regexp.last_match(1))
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
property_supported :updated_on do
|
|
55
|
+
if content_for_scanner =~ /Last Updated on: (.+)\n/
|
|
56
|
+
parse_time(::Regexp.last_match(1))
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
property_not_supported :expires_on
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
property_supported :nameservers do
|
|
64
|
+
if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
|
|
65
|
+
::Regexp.last_match(1).split("\n").map do |name|
|
|
66
|
+
Parser::Nameserver.new(name: name.strip)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base_cocca2'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
# Parser for the whois.nic.net.sb server.
|
|
17
|
+
#
|
|
18
|
+
# @see Whois::Parsers::Example
|
|
19
|
+
# The Example parser for the list of all available methods.
|
|
20
|
+
#
|
|
21
|
+
class WhoisNicNetSb < BaseCocca2
|
|
22
|
+
|
|
23
|
+
property_supported :status do
|
|
24
|
+
if content_for_scanner.match?(/^The queried object does not exist: No Object Found\s*$/i)
|
|
25
|
+
:available
|
|
26
|
+
else
|
|
27
|
+
list = Array.wrap(node("Domain Status")).map(&:downcase)
|
|
28
|
+
list.include?("available") ? :available : super()
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base_cocca2'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
# Parser for the whois.nic.nf server.
|
|
17
|
+
#
|
|
18
|
+
# @see Whois::Parsers::Example
|
|
19
|
+
# The Example parser for the list of all available methods.
|
|
20
|
+
#
|
|
21
|
+
class WhoisNicNf < BaseCocca2
|
|
22
|
+
# The current CoCCA endpoint omits `Domain Status` for an authoritative
|
|
23
|
+
# no-object response. Keep that response available instead of allowing
|
|
24
|
+
# the base parser to return an unknown status.
|
|
25
|
+
property_supported :status do
|
|
26
|
+
if content_for_scanner.match?(/^The queried object does not exist: No Object Found\b/i)
|
|
27
|
+
:available
|
|
28
|
+
else
|
|
29
|
+
list = Array.wrap(node("Domain Status")).map(&:downcase)
|
|
30
|
+
if list.include?("no object found")
|
|
31
|
+
:available
|
|
32
|
+
elsif list.include?("ok") || list.any? { |value| value.match?(/\Aactive(?:\s|\z)/) }
|
|
33
|
+
:registered
|
|
34
|
+
else
|
|
35
|
+
:unknown
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
property_supported :available? do
|
|
41
|
+
status == :available
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
property_supported :registered? do
|
|
45
|
+
status == :registered
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require_relative 'base_icann_compliant'
|
|
2
|
+
|
|
3
|
+
module Whois
|
|
4
|
+
class Parsers
|
|
5
|
+
|
|
6
|
+
# The .one registry uses the ICANN WHOIS shape for records, but its
|
|
7
|
+
# no-record response is a short "No Data Found" line before the standard
|
|
8
|
+
# footer. Keep that exact evidence separate from an unparseable response.
|
|
9
|
+
class WhoisNicOne < BaseIcannCompliant
|
|
10
|
+
property_supported :status do
|
|
11
|
+
if no_data_found?
|
|
12
|
+
:available
|
|
13
|
+
elsif registered_response?
|
|
14
|
+
:registered
|
|
15
|
+
else
|
|
16
|
+
:unknown
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
property_supported :available? do
|
|
21
|
+
status == :available
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
property_supported :registered? do
|
|
25
|
+
status == :registered
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def no_data_found?
|
|
31
|
+
content_for_scanner.lines.first.to_s.strip.casecmp?("No Data Found")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def registered_response?
|
|
35
|
+
content_for_scanner.match?(/^Domain Name:\s+\S+/) &&
|
|
36
|
+
content_for_scanner.match?(/^Domain Status:\s+\S+/)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#++
|
|
4
|
+
|
|
5
|
+
require_relative 'base_icann_compliant'
|
|
6
|
+
|
|
7
|
+
module Whois
|
|
8
|
+
class Parsers
|
|
9
|
+
|
|
10
|
+
# Parser for the Radix WHOIS service used by .online.
|
|
11
|
+
class WhoisNicOnline < BaseIcannCompliant
|
|
12
|
+
|
|
13
|
+
self.scanner = Scanners::BaseIcannCompliant
|
|
14
|
+
|
|
15
|
+
property_supported :available? do
|
|
16
|
+
!!(content_for_scanner =~ /^>>> Domain \S+ is available for registration\s*$/i)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Radix can answer with a limit or client-denial notice that contains no
|
|
20
|
+
# domain evidence. Do not let Base#registered? turn those responses into
|
|
21
|
+
# false registrations.
|
|
22
|
+
def response_throttled?
|
|
23
|
+
super || content_for_scanner.match?(/^(?:\s*(?:%|#)\s*)?(?:whois\s+)?query\s+(?:rate\s+)?limit\s+exceeded\b/i) ||
|
|
24
|
+
content_for_scanner.match?(/^(?:\s*(?:%|#)\s*)?maximum\s+query\s+rate\s+reached\b/i) ||
|
|
25
|
+
content_for_scanner.match?(/^(?:\s*(?:%|#)\s*)?excessive\s+querying\b/i)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def response_unavailable?
|
|
29
|
+
super || content_for_scanner.match?(/^(?:\s*(?:%|#)\s*)?(?:requests of this client are not permitted|access to the whois service is denied)\b/i)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
property_supported :expires_on do
|
|
33
|
+
node("Registry Expiry Date") { |value| parse_time(value) }
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
# Parser for the whois.nic.org.uy server.
|
|
17
|
+
#
|
|
18
|
+
# @note This parser is just a stub and provides only a few basic methods
|
|
19
|
+
# to check for domain availability and get domain status.
|
|
20
|
+
# Please consider to contribute implementing missing methods.
|
|
21
|
+
#
|
|
22
|
+
# @see Whois::Parsers::Example
|
|
23
|
+
# The Example parser for the list of all available methods.
|
|
24
|
+
#
|
|
25
|
+
class WhoisNicOrgUy < Base
|
|
26
|
+
|
|
27
|
+
property_supported :status do
|
|
28
|
+
if content_for_scanner =~ /Estatus del dominio: (.+?)\n/
|
|
29
|
+
case ::Regexp.last_match(1).downcase
|
|
30
|
+
when "activo"
|
|
31
|
+
:registered
|
|
32
|
+
else
|
|
33
|
+
Whois::Parser.bug!(ParserError, "Unknown status `#{::Regexp.last_match(1)}'.")
|
|
34
|
+
end
|
|
35
|
+
else
|
|
36
|
+
:available
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
property_supported :available? do
|
|
41
|
+
!!(content_for_scanner =~ /No match for "(.+?)"/)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
property_supported :registered? do
|
|
45
|
+
!available?
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
property_supported :created_on do
|
|
50
|
+
if content_for_scanner =~ /Fecha de Creacion: (.+)\n/
|
|
51
|
+
parse_time(::Regexp.last_match(1))
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
property_supported :updated_on do
|
|
56
|
+
if content_for_scanner =~ /Ultima Actualizacion: (.+)\n/
|
|
57
|
+
parse_time(::Regexp.last_match(1))
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
property_not_supported :expires_on
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
property_supported :nameservers do
|
|
65
|
+
if content_for_scanner =~ /Servidor\(es\) de Nombres de Dominio:\n\n((.+\n)+)\n/
|
|
66
|
+
::Regexp.last_match(1).scan(/-\s(.*?)\n/).flatten.map do |name|
|
|
67
|
+
Parser::Nameserver.new(:name => name)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base_nic_fr'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
# Parser for the whois.nic.pm server.
|
|
17
|
+
#
|
|
18
|
+
# @see Whois::Parsers::Example
|
|
19
|
+
# The Example parser for the list of all available methods.
|
|
20
|
+
#
|
|
21
|
+
class WhoisNicPm < BaseNicFr
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
# Parser for the whois.nic.pr server.
|
|
17
|
+
#
|
|
18
|
+
# @see Whois::Parsers::Example
|
|
19
|
+
# The Example parser for the list of all available methods.
|
|
20
|
+
#
|
|
21
|
+
class WhoisNicPr < Base
|
|
22
|
+
|
|
23
|
+
property_supported :domain do
|
|
24
|
+
if content_for_scanner =~ /^Domain:\s+(.+)\n/
|
|
25
|
+
::Regexp.last_match(1)
|
|
26
|
+
elsif content_for_scanner =~ /^The domain (.+?) is not registered\.\n/
|
|
27
|
+
::Regexp.last_match(1)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
property_not_supported :domain_id
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
property_supported :status do
|
|
35
|
+
if available?
|
|
36
|
+
:available
|
|
37
|
+
else
|
|
38
|
+
:registered
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
property_supported :available? do
|
|
43
|
+
!!(content_for_scanner =~ /^The domain (.+?) is not registered\.\n/)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
property_supported :registered? do
|
|
47
|
+
!available?
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
property_supported :created_on do
|
|
52
|
+
if content_for_scanner =~ /Created On:\s+(.+)\n/
|
|
53
|
+
parse_time(::Regexp.last_match(1))
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
property_not_supported :updated_on
|
|
58
|
+
|
|
59
|
+
property_supported :expires_on do
|
|
60
|
+
if content_for_scanner =~ /Expires On:\s+(.+)\n/
|
|
61
|
+
parse_time(::Regexp.last_match(1))
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
property_not_supported :registrar
|
|
67
|
+
|
|
68
|
+
property_not_supported :registrant_contacts
|
|
69
|
+
|
|
70
|
+
property_not_supported :admin_contacts
|
|
71
|
+
|
|
72
|
+
property_not_supported :technical_contacts
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
property_supported :nameservers do
|
|
76
|
+
content_for_scanner.scan(/DNS:\s+(.+)\n/).flatten.map do |name|
|
|
77
|
+
Parser::Nameserver.new(:name => name)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
#
|
|
17
|
+
# = whois.nic.priv.at parser
|
|
18
|
+
#
|
|
19
|
+
# Parser for the whois.nic.priv.at server.
|
|
20
|
+
#
|
|
21
|
+
# NOTE: This parser is just a stub and provides only a few basic methods
|
|
22
|
+
# to check for domain availability and get domain status.
|
|
23
|
+
# Please consider to contribute implementing missing methods.
|
|
24
|
+
# See WhoisNicIt parser for an explanation of all available methods
|
|
25
|
+
# and examples.
|
|
26
|
+
#
|
|
27
|
+
class WhoisNicPrivAt < Base
|
|
28
|
+
|
|
29
|
+
property_supported :status do
|
|
30
|
+
if available?
|
|
31
|
+
:available
|
|
32
|
+
else
|
|
33
|
+
:registered
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
property_supported :available? do
|
|
38
|
+
!!(content_for_scanner =~ /^% No entries found/)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
property_supported :registered? do
|
|
42
|
+
!available?
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
property_not_supported :created_on
|
|
47
|
+
|
|
48
|
+
property_supported :updated_on do
|
|
49
|
+
if content_for_scanner =~ /changed:\s+(.+)\n/
|
|
50
|
+
parse_time(::Regexp.last_match(1).strip.split(" ").last)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
property_not_supported :expires_on
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
property_not_supported :nameservers
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base'
|
|
11
|
+
require_relative 'whois.centralnic.com.rb'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
module Whois
|
|
15
|
+
class Parsers
|
|
16
|
+
|
|
17
|
+
# Parser for the whois.nic.pw server.
|
|
18
|
+
#
|
|
19
|
+
# It aliases the whois.centralnic.com parser because
|
|
20
|
+
# the .PW TLD is powered by Centralnic.
|
|
21
|
+
class WhoisNicPw < WhoisCentralnicCom
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Ruby Whois
|
|
3
|
+
#
|
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net>
|
|
7
|
+
#++
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require_relative 'base_nic_fr'
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
module Whois
|
|
14
|
+
class Parsers
|
|
15
|
+
|
|
16
|
+
# Parser for the whois.nic.pm server.
|
|
17
|
+
#
|
|
18
|
+
# @see Whois::Parsers::Example
|
|
19
|
+
# The Example parser for the list of all available methods.
|
|
20
|
+
#
|
|
21
|
+
class WhoisNicRe < BaseNicFr
|
|
22
|
+
# AFNIC uses this compact marker for a missing .re object.
|
|
23
|
+
property_supported :available? do
|
|
24
|
+
!!(content_for_scanner =~ /^(?:%% NOT FOUND|%% No entries found in the AFNIC Database\.)\s*$/i)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
end
|