├── .gitattributes
├── .gitignore
├── .phpcs.xml.dist
├── .scrutinizer.yml
├── .travis.yml
├── CHANGELOG.md
├── LICENSE
├── README.md
├── VERSION
├── composer.json
├── docs
├── FAQ.md
├── HANDLERS.md
├── ROADMAP.md
└── UPGRADE.md
├── example
├── example.cli.php
├── example.php
└── whois.icon.png
├── handler.template.php
├── output.txt
├── phpunit.xml.dist
├── poc.php
├── src
├── Cli
│ └── CliHelper.php
├── Handlers
│ ├── AbstractHandler.php
│ ├── AeHandler.php
│ ├── AeroHandler.php
│ ├── AgHandler.php
│ ├── AmHandler.php
│ ├── AppHandler.php
│ ├── AsiaHandler.php
│ ├── AtHandler.php
│ ├── AuHandler.php
│ ├── BeHandler.php
│ ├── BhHandler.php
│ ├── BizHandler.php
│ ├── BrHandler.php
│ ├── ClHandler.php
│ ├── DeHandler.php
│ ├── EduHandler.php
│ ├── HandlerInterface.php
│ ├── KiwiHandler.php
│ └── UkHandler.php
├── IpTools.php
├── Utils.php
├── Whois.php
├── WhoisClient.php
├── npdata.ser
├── whois.ca.php
├── whois.cat.php
├── whois.ch.php
├── whois.cn.php
├── whois.co.php
├── whois.co.za.php
├── whois.coop.php
├── whois.cz.php
├── whois.dev.php
├── whois.dk.php
├── whois.eu.php
├── whois.fi.php
├── whois.fj.php
├── whois.fm.php
├── whois.fr.php
├── whois.gtld.afternic.php
├── whois.gtld.alldomains.php
├── whois.gtld.ascio.php
├── whois.gtld.assorted.php
├── whois.gtld.corporatedomains.php
├── whois.gtld.directnic.php
├── whois.gtld.domaindiscover.php
├── whois.gtld.domainpeople.php
├── whois.gtld.dotster.php
├── whois.gtld.dreamhost.php
├── whois.gtld.enom.php
├── whois.gtld.fabulous.php
├── whois.gtld.fastdomain.php
├── whois.gtld.gandi.php
├── whois.gtld.genericb.php
├── whois.gtld.godaddy.php
├── whois.gtld.iana.php
├── whois.gtld.interdomain.php
├── whois.gtld.itsyourdomain.php
├── whois.gtld.joker.php
├── whois.gtld.markmonitor.php
├── whois.gtld.melbourneit.php
├── whois.gtld.moniker.php
├── whois.gtld.name.php
├── whois.gtld.nameintel.php
├── whois.gtld.namejuice.php
├── whois.gtld.nameking.php
├── whois.gtld.names4ever.php
├── whois.gtld.namevault.php
├── whois.gtld.networksolutions.php
├── whois.gtld.nicco.php
├── whois.gtld.nicline.php
├── whois.gtld.onlinenic.php
├── whois.gtld.opensrs.php
├── whois.gtld.ovh.php
├── whois.gtld.php
├── whois.gtld.psiusa.php
├── whois.gtld.publicdomainregistry.php
├── whois.gtld.register.php
├── whois.gtld.rrpproxy.php
├── whois.gtld.schlund.php
├── whois.gtld.srsplus.php
├── whois.gtld.tmagnic.php
├── whois.gtld.tvcorp.php
├── whois.gtld.wildwestdomains.php
├── whois.hu.php
├── whois.ie.php
├── whois.il.php
├── whois.in.php
├── whois.info.php
├── whois.int.php
├── whois.ip.afrinic.php
├── whois.ip.apnic.php
├── whois.ip.arin.php
├── whois.ip.krnic.php
├── whois.ip.lacnic.php
├── whois.ip.php
├── whois.ip.ripe.php
├── whois.ir.php
├── whois.is.php
├── whois.it.php
├── whois.jp.php
├── whois.london.php
├── whois.lt.php
├── whois.lu.php
├── whois.ly.php
├── whois.me.php
├── whois.mobi.php
├── whois.museum.php
├── whois.mx.php
├── whois.name.php
├── whois.nl.php
├── whois.no.php
├── whois.nu.php
├── whois.nz.php
├── whois.org.php
├── whois.org.za.php
├── whois.parser.php
├── whois.ph.php
├── whois.pl.php
├── whois.pro.php
├── whois.pt.php
├── whois.ro.php
├── whois.ru.php
├── whois.rwhois.php
├── whois.sc.php
├── whois.se.php
├── whois.servers.php
├── whois.si.php
├── whois.su.php
├── whois.tel.php
├── whois.today.php
├── whois.travel.php
├── whois.us.php
├── whois.ve.php
├── whois.ws.php
├── whois.xxx.php
└── whois.zanet.php
├── test.txt
├── tests
├── BaseTestCase.php
├── Handlers
│ ├── AeHandlerTest.php
│ ├── AeroHandlerTest.php
│ ├── AfternicHandlerTest.php
│ ├── AgHandlerTest.php
│ ├── AmHandlerTest.php
│ ├── AppHandlerTest.php
│ ├── AsiaHandlerTest.php
│ ├── AtHandlerTest.php
│ ├── AuHandlerTest.php
│ ├── BeHandlerTest.php
│ ├── BhHandlerTest.php
│ ├── BizHandlerTest.php
│ ├── BrHandlerTest.php
│ ├── CaHandlerTest.php
│ ├── CatHandlerTest.php
│ ├── ChHandlerTest.php
│ ├── ClHandlerTest.php
│ ├── CnHandlerTest.php
│ ├── CoHandlerTest.php
│ ├── CoZaHandlerTest.php
│ ├── CoopHandlerTest.php
│ ├── CzHandlerTest.php
│ ├── DeHandlerTest.php
│ ├── DevHandlerTest.php
│ ├── DkHandlerTest.php
│ ├── EduHandlerTest.php
│ ├── EuHandlerTest.php
│ ├── FiHandlerTest.php
│ ├── FjHandlerTest.php
│ ├── FmHandlerTest.php
│ ├── FrHandlerTest.php
│ ├── GtldHandlerTest.php
│ ├── HandlerTest.php
│ ├── HuHandlerTest.php
│ ├── IeHandlerTest.php
│ ├── IlHandlerTest.php
│ ├── KiwiHandlerTest.php
│ ├── LondonHandlerTest.php
│ ├── NoHandlerTest.php
│ ├── OrgHandlerTest.php
│ ├── PhHandlerTest.php
│ ├── RuHandlerTest.php
│ ├── SeHandlerTest.php
│ ├── TodayHandlerTest.php
│ ├── UkHandlerTest.php
│ ├── UsHandlerTest.php
│ └── WsHandlerTest.php
├── IpToolsTest.php
├── ParserTest.php
├── WhoisClientTest.php
├── WhoisTest.php
├── bootstrap.php
├── fixtures
│ ├── 4ever.de.txt
│ ├── a2ba91bff88c6983f6af010c41236206df64001d.de.txt
│ ├── aeda.ae.txt
│ ├── berkeley.edu.txt
│ ├── blaueskreuz.ch.txt
│ ├── buydomains.com.txt
│ ├── china.cn.txt
│ ├── cira.ca.txt
│ ├── cityescape.ph.txt
│ ├── creart.ch.txt
│ ├── create-fixture.bat
│ ├── denic.de.txt
│ ├── domainregistry.ie.txt
│ ├── domains.london.txt
│ ├── dominis.cat.txt
│ ├── dot.fm.txt
│ ├── dot.ph.txt
│ ├── eurid.eu.txt
│ ├── ficora.fi.txt
│ ├── google.ae.txt
│ ├── google.app.smitty.txt
│ ├── google.app.txt
│ ├── google.ca.txt
│ ├── google.cat.txt
│ ├── google.ch.txt
│ ├── google.cl.txt
│ ├── google.cn.txt
│ ├── google.co.txt
│ ├── google.co.uk.txt
│ ├── google.co.za.txt
│ ├── google.com.txt
│ ├── google.coop.txt
│ ├── google.cz.txt
│ ├── google.de.txt
│ ├── google.dk.txt
│ ├── google.eu.txt
│ ├── google.fi.txt
│ ├── google.fm.txt
│ ├── google.fr.txt
│ ├── google.hu.txt
│ ├── google.ie.txt
│ ├── google.kiwi.txt
│ ├── google.net.txt
│ ├── google.no.txt
│ ├── google.org.txt
│ ├── google.ru.txt
│ ├── google.se.txt
│ ├── google.us.txt
│ ├── google.ws.txt
│ ├── hello.kiwi.txt
│ ├── humblebundle.de.txt
│ ├── isoc.am.txt
│ ├── lemonade.fr.txt
│ ├── modx.today.txt
│ ├── neulevel.biz.txt
│ ├── neustar.us.txt
│ ├── nic.ae.txt
│ ├── nic.aero.txt
│ ├── nic.ag.txt
│ ├── nic.asia.txt
│ ├── nic.at.txt
│ ├── nic.be.txt
│ ├── nic.bh.txt
│ ├── nic.co.txt
│ ├── nic.coop.txt
│ ├── nic.cz.txt
│ ├── nic.fr.txt
│ ├── nic.hu.txt
│ ├── nic.london.txt
│ ├── norid.no.txt
│ ├── olsns.co.uk.txt
│ ├── ostap.dev.txt
│ ├── registro.br.txt
│ ├── samoanic.ws.txt
│ ├── scottishrecoveryconsortium.org.txt
│ ├── sex.co.za.txt
│ ├── smile.coop.txt
│ ├── tapuz.co.il.txt
│ ├── telstra.com.au.txt
│ ├── usp.ac.fj.txt
│ ├── vibrantdigitalfuture.uk.txt
│ └── рег.рф.txt
└── ip_handlerTest.php
├── testsuite.php
├── testsuite.txt
└── update-fixtures.php
/.gitattributes:
--------------------------------------------------------------------------------
1 | /composer.lock -merge
2 |
3 | # Set the default behavior, in case someone doesn't have core.autocrlf set.
4 | * text=auto
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ### Composer template
2 | composer.lock
3 | composer.phar
4 | /vendor
5 |
6 | nbproject
7 |
8 | ### JetBrains template
9 | .idea/
10 |
11 | *.phar
12 |
13 | coverage.clover
14 | *.cache
15 | *.diff
16 |
--------------------------------------------------------------------------------
/.phpcs.xml.dist:
--------------------------------------------------------------------------------
1 |
2 |
3 | ./src
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.scrutinizer.yml:
--------------------------------------------------------------------------------
1 | tools:
2 | external_code_coverage: true
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | # https://config.travis-ci.com/explore
2 | os: linux
3 | dist: xenial
4 |
5 | language: php
6 |
7 | php:
8 | - 7.2
9 | - 7.3
10 | - 7.4
11 | - 8.0
12 | - nightly
13 |
14 | jobs:
15 | fast_finish: true
16 | allow_failures:
17 | - php: nightly
18 |
19 | env:
20 | global:
21 | - XDEBUG_MODE="coverage"
22 | jobs:
23 | # - PREFER_LOWEST="--prefer-lowest --prefer-stable"
24 | - PREFER_LOWEST=""
25 |
26 |
27 | install:
28 | - composer self-update && composer --version
29 |
30 | before_script:
31 | - php -i
32 | - composer validate --no-check-all --strict
33 | - composer update $PREFER_LOWEST
34 |
35 | script:
36 | # - php testsuite.php --ci
37 | - vendor/bin/phpunit --verbose --coverage-clover=coverage.clover
38 |
39 | after_script:
40 | - travis_retry wget https://scrutinizer-ci.com/ocular.phar
41 | - php ocular.phar code-coverage:upload --format=php-clover coverage.clover
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | 5.0.0-dev
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jsmitty12/phpwhois",
3 | "description": "phpWhois - library for querying whois services and parsing results.",
4 | "keywords": [
5 | "PHP",
6 | "Whois",
7 | "phpWhois"
8 | ],
9 | "homepage": "http://phpwhois.pw",
10 | "type": "library",
11 | "license": "GPL-2.0-or-later",
12 | "authors": [
13 | {
14 | "name": "Mark Jeftovic",
15 | "email": "markjr@easydns.com"
16 | },
17 | {
18 | "name": "David Saez Padros",
19 | "email": "david@ols.es"
20 | },
21 | {
22 | "name": "Ross Golder",
23 | "email": "ross@golder.org"
24 | },
25 | {
26 | "name": "Dmitry Lukashin",
27 | "email": "dmitry@lukashin.ru"
28 | },
29 | {
30 | "name": "Joshua Smith",
31 | "email": "jsmith@jssm.com"
32 | }
33 | ],
34 | "require": {
35 | "php": ">=7.2",
36 | "algo26-matthias/idna-convert": "^3.0"
37 | },
38 | "require-dev": {
39 | "dms/phpunit-arraysubset-asserts": "~0.1",
40 | "phpunit/phpunit": "^8.0 || ^9.0"
41 | },
42 | "suggest": {
43 | "lib-openssl": "*"
44 | },
45 | "autoload": {
46 | "psr-4": {
47 | "phpWhois\\": "src/"
48 | }
49 | },
50 | "autoload-dev": {
51 | "psr-4": {
52 | "phpWhois\\": "tests/"
53 | },
54 | "classmap": [
55 | "src/",
56 | "tests/"
57 | ]
58 | },
59 | "config": {
60 | "sort-packages": true
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/docs/FAQ.md:
--------------------------------------------------------------------------------
1 | Whois2 FAQ v1.2 June 06/00 Mark Jeftovic
2 |
3 | Q's
4 | ===
5 |
6 | 1.0 How do I tell if a domain is available or not?
7 |
8 | 1.1 I'm getting **"Fatal error: Call to unsupported or undefined function php preg_replace()"** why?
9 |
10 | 1.2 whois2 breaks under PHP4, I get ```$result["rawdata"]``` array now instead of the actual data!
11 |
12 | Q & A's
13 | -------
14 |
15 | ### 1.0 How do I tell if a domain is available or not?
16 |
17 | The big difference between this and version 1 is the absence of the
18 | FOUND flag.
19 |
20 | Anyways, for .com/.net/.org you can tell that a domain is available
21 | or not if the regyinfo array is empty.
22 |
23 | ```php
24 | $whois = new Whois("test.com");
25 | $result = $whois->lookup();
26 |
27 | if(empty($result["regyinfo"])) {
28 | // available
29 | } else {
30 | // taken
31 | }
32 | ```
33 |
34 | Keep in mind that this isn't 100% surefire. A domain can be dropped from
35 | the registry for nonpayment, and remain in limbo for up to 5 days where
36 | it still cannot be registered. Also, whois servers can lag behind the root
37 | servers by as much as 24 or even 48 hours in extreme cases.
38 |
39 | You can also check if there are any nameserver RR's defined (and thus infer
40 | that the domain is in the root servers) by calling ns_rr_defined($domain)
41 | in the utils extended class.
42 |
43 | For other TLD's it's up to you to either grep the results for what you know
44 | to be a "not found" string, or write an extended handler that does a cleaner
45 | job of it, which you can then submit to this project and immortalize yourself :)
46 |
47 |
48 | ### 1.1 I'm getting "Fatal error: Call to unsupported or undefined function preg_replace()" why?
49 |
50 | All that means is that the version of PHP you're using doesn't have
51 | the perl regular expression module. You can either upgrade or in
52 | the meantime just move netsol.whois out of the php_include_path,
53 | you won't get nicely parsed output for netsol domains but you
54 | will still at least get the raw output then.
55 |
--------------------------------------------------------------------------------
/docs/ROADMAP.md:
--------------------------------------------------------------------------------
1 | Development roadmap
2 | ===================
3 |
4 | General ideas
5 | -------------
6 | Originally phpWhois was developed a long ago having support of PHP4 in mind.
7 |
8 | Now it is needed to update the codebase to support the modern features like:
9 |
10 | - [Composer](https://getcomposer.org/ "Composer")
11 | - Continuous integration service [Travis](https://travis-ci.org/ "Travis")
12 | with [PHPUnit](https://phpunit.de/ "PHPUnit")
13 | - Code quality testing with [Scrutinizer](https://scrutinizer-ci.com "Scrutinizer")
14 | - Throw exceptions
15 | - Add support for binding source ip
16 |
17 | Code must be reworked to support
18 | [PSR standards](http://www.php-fig.org/ "PSR standards").
19 |
20 | Current major version of phpWhois is **4**. Global new features will be
21 | implemented in major version **5**.
22 |
23 | It is good idea to keep the backwards compatibility for version 5. However
24 | applications using version 4 may need to be updated because of using
25 | namespaced classes in version 5.
26 |
27 | New TLDs
28 | --------
29 | Last few years there was a bunch of new top-level domains spinned by ICANN,
30 | including international domains with non-latin symbols.
31 |
32 | New TLDs should be monitored and added to phpWhois database.
33 |
34 | There are some 'default' whois servers which names are like `whois.tld`,
35 | `nic.tld`. We can rely on these names or explicitly set the names in tlds list
36 |
37 | Documentation
38 | -------------
39 | Having in mind ICANN's great plans for running new TLDs there should be more
40 | detailed documentation regarding contributing to repository.
41 |
42 | Also we should pay attention to the internal code documenting, which later
43 | can be compiled into API documentation with
44 | [PHPDocumentor](http://www.phpdoc.org/ "PHPDocumentor").
45 |
46 | Optional features
47 | -----------------
48 | Maybe there should be additional methods implemented like `getDaysToExpire`
49 | which will be reporting a number of days left to domain expiration.
--------------------------------------------------------------------------------
/docs/UPGRADE.md:
--------------------------------------------------------------------------------
1 | Migration from v4 to v5
2 | =======================
3 |
4 | This document is intended to guide users through the process of migration from old version v4 to v5.
5 |
6 | What's new in v5?
7 | ----------------------------------------
8 |
9 | 1. You can check the list of new features in CHANGELOG.md
10 | 2. Minimum supported version of PHP is **5.3** because of namespaces
11 | 3. Project has external depencies and can be installed only through composer
12 |
--------------------------------------------------------------------------------
/example/example.cli.php:
--------------------------------------------------------------------------------
1 | #!/usr/local/bin/php -n
2 | lookup($domain);
43 |
44 | print_r($result);
--------------------------------------------------------------------------------
/example/whois.icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsmitty12/phpWhois/2f88d8f02e95b3d959e564b476ecdf791135896d/example/whois.icon.png
--------------------------------------------------------------------------------
/handler.template.php:
--------------------------------------------------------------------------------
1 |
2 |
7 |
16 |
17 |
18 | ./tests
19 |
20 |
21 |
22 |
23 | src
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/poc.php:
--------------------------------------------------------------------------------
1 | useServer('org', '127.0.0.1:9999');
6 | print_r($whois->lookup('example.org'));
7 |
--------------------------------------------------------------------------------
/src/Cli/CliHelper.php:
--------------------------------------------------------------------------------
1 | 'domain.name',
19 | 'Registrar Name:' => 'domain.sponsor',
20 | 'Status:' => 'domain.status',
21 | 'Registrant Contact ID:' => 'owner.handle',
22 | 'Registrant Contact Name:' => 'owner.name',
23 | 'Registrant Contact Organisation:' => 'owner.organization',
24 | 'Tech Contact Name:' => 'tech.name',
25 | 'Tech Contact ID:' => 'tech.handle',
26 | 'Tech Contact Organisation:' => 'tech.organization',
27 | 'Name Server:' => 'domain.nserver.',
28 | ];
29 |
30 | $r = [
31 | 'regrinfo' => $this->generic_parser_b($data_str['rawdata'], $items, 'ymd'),
32 | 'regyinfo' => [
33 | 'referrer' => 'http://www.nic.ae',
34 | 'registrar' => 'UAENIC',
35 | ],
36 | 'rawdata' => $data_str['rawdata'],
37 | ];
38 |
39 | return $r;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/Handlers/AeroHandler.php:
--------------------------------------------------------------------------------
1 | $this->generic_parser_b($data_str['rawdata'], [], 'ymd'),
19 | 'regyinfo' => [
20 | 'referrer' => 'http://www.nic.aero',
21 | 'registrar' => 'Societe Internationale de Telecommunications Aeronautiques SC',
22 | ],
23 | 'rawdata' => $data_str['rawdata'],
24 | ];
25 |
26 | return $r;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Handlers/AgHandler.php:
--------------------------------------------------------------------------------
1 | $this->generic_parser_b($data_str['rawdata']),
19 | 'regyinfo' => [
20 | 'referrer' => 'http://www.nic.ag',
21 | 'registrar' => 'Nic AG',
22 | ],
23 | 'rawdata' => $data_str['rawdata'],
24 | ];
25 |
26 | return $r;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Handlers/AmHandler.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
19 | 'domain.name' => 'Domain name:',
20 | 'domain.created' => 'Registered:',
21 | 'domain.changed' => 'Last modified:',
22 | 'domain.nserver' => 'DNS servers:',
23 | 'domain.status' => 'Status:',
24 | 'tech' => 'Technical contact:',
25 | 'admin' => 'Administrative contact:',
26 | ];
27 |
28 | $rawData = $this->removeBlankLines($data_str['rawdata']);
29 | $r = [
30 | 'regrinfo' => $this->get_blocks($rawData, $items),
31 | 'rawdata' => $data_str['rawdata'],
32 | ];
33 |
34 | if (!empty($r['regrinfo']['domain']['name'])) {
35 | $r['regrinfo'] = $this->get_contacts($r['regrinfo']);
36 | $r['regrinfo']['registered'] = 'yes';
37 | } else {
38 | $r = [];
39 | $r['regrinfo']['registered'] = 'no';
40 | }
41 |
42 | $r['regyinfo'] = [
43 | 'referrer' => 'http://www.isoc.am',
44 | 'registrar' => 'ISOCAM',
45 | ];
46 |
47 | return $r;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Handlers/AppHandler.php:
--------------------------------------------------------------------------------
1 | $this->generic_parser_b($data_str['rawdata']),
16 | 'rawdata' => $data_str['rawdata'],
17 | ];
18 |
19 | return $r;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Handlers/AsiaHandler.php:
--------------------------------------------------------------------------------
1 | $this->generic_parser_b($data_str['rawdata']),
19 | 'regyinfo' => [
20 | 'referrer' => 'http://www.dotasia.org/',
21 | 'registrar' => 'DotAsia',
22 | ],
23 | 'rawdata' => $data_str['rawdata'],
24 | ];
25 |
26 | return $r;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Handlers/AuHandler.php:
--------------------------------------------------------------------------------
1 | 'domain.name',
19 | 'Last Modified:' => 'domain.changed',
20 | 'Registrar Name:' => 'domain.sponsor',
21 | 'Status:' => 'domain.status',
22 | 'Domain ROID:' => 'domain.handle',
23 | 'Registrant:' => 'owner.organization',
24 | 'Registrant Contact ID:' => 'owner.handle',
25 | 'Registrant Contact Email:' => 'owner.email',
26 | 'Registrant Contact Name:' => 'owner.name',
27 | 'Tech Contact Name:' => 'tech.name',
28 | 'Tech Contact Email:' => 'tech.email',
29 | 'Tech Contact ID:' => 'tech.handle',
30 | 'Name Server:' => 'domain.nserver.',
31 | ];
32 |
33 | $r = [
34 | 'regrinfo' => $this->generic_parser_b($data_str['rawdata'], $items),
35 | 'regyinfo' => [
36 | 'referrer' => 'http://www.aunic.net',
37 | 'registrar' => 'AU-NIC',
38 | ],
39 | 'rawdata' => $data_str['rawdata'],
40 | ];
41 |
42 | return $r;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/Handlers/BeHandler.php:
--------------------------------------------------------------------------------
1 | 'Domain:',
19 | 'domain.status' => 'Status:',
20 | 'domain.nserver' => 'Nameservers:',
21 | 'domain.created' => 'Registered:',
22 | 'owner' => 'Licensee:',
23 | 'admin' => 'Onsite Contacts:',
24 | 'tech' => 'Registrar Technical Contacts:',
25 | 'agent' => 'Registrar:',
26 | 'agent.uri' => 'Website:',
27 | ];
28 |
29 | $trans = [
30 | 'company name2:' => '',
31 | ];
32 |
33 | $rawData = $this->removeBlankLines($data_str['rawdata']);
34 | $r = [
35 | 'regrinfo' => $this->get_blocks($rawData, $items),
36 | 'regyinfo' => [
37 | 'referrer' => 'http://www.domain-registry.nl',
38 | 'registrar' => 'DNS Belgium',
39 | ],
40 | 'rawdata' => $data_str['rawdata'],
41 | ];
42 |
43 | $domainStatus = $r['regrinfo']['domain']['status'] ;
44 | if ($domainStatus === 'REGISTERED' || $domainStatus === 'NOT AVAILABLE') {
45 | $r['regrinfo']['registered'] = 'yes';
46 |
47 | $r['regrinfo'] = $this->get_contacts($r['regrinfo'], $trans);
48 |
49 | if (isset($r['regrinfo']['agent'])) {
50 | $sponsor = $this->get_contact($r['regrinfo']['agent'], $trans);
51 | unset($r['regrinfo']['agent']);
52 | $r['regrinfo']['domain']['sponsor'] = $sponsor;
53 | }
54 |
55 | $r = $this->format_dates($r, '-mdy');
56 | } else {
57 | $r['regrinfo']['registered'] = 'no';
58 | }
59 |
60 | return $r;
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/src/Handlers/BhHandler.php:
--------------------------------------------------------------------------------
1 | $this->generic_parser_b($data_str['rawdata']),
19 | 'rawdata' => $data_str['rawdata'],
20 | ];
21 |
22 | if (empty($r['regrinfo']['domain']['created'])) {
23 | $r['regrinfo']['registered'] = 'no';
24 | } else {
25 | $r['regrinfo']['registered'] = 'yes';
26 | }
27 | $r['regyinfo'] = [
28 | 'referrer' => 'http://www.nic.bh/',
29 | 'registrar' => 'NIC-BH',
30 | ];
31 |
32 | return $r;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/Handlers/BizHandler.php:
--------------------------------------------------------------------------------
1 | $this->generic_parser_b($data_str['rawdata'], [], 'mdy'),
19 | 'regyinfo' => [
20 | 'referrer' => 'http://www.neulevel.biz',
21 | 'registrar' => 'NEULEVEL',
22 | ],
23 | 'rawdata' => $data_str['rawdata'],
24 | ];
25 |
26 | return $r;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Handlers/ClHandler.php:
--------------------------------------------------------------------------------
1 | '(Administrative Contact)',
19 | 'tech' => 'Contacto Técnico (Technical Contact):',
20 | // 'domain.nserver' => 'Servidores de nombre (Domain servers):',
21 | 'domain.nserver' => 'Name server:',
22 | 'domain.changed' => '(Database last updated on):',
23 | 'domain.created' => 'Creation date:',
24 | 'domain.expires' => 'Expiration date:',
25 | ];
26 |
27 | $trans = [
28 | 'organización:' => 'organization',
29 | 'nombre :' => 'name',
30 | ];
31 |
32 | $rawData = $this->removeBlankLines($data_str['rawdata']);
33 | $r = [
34 | 'rawdata' => $data_str['rawdata'],
35 | 'regrinfo' => $this->easy_parser($rawData, $items, 'd-m-y', $trans),
36 | ];
37 |
38 | if (!isset($r['regrinfo']['domain']['name'])) {
39 | $r['regrinfo']['domain']['name'] = $query;
40 | }
41 |
42 | $r['regyinfo'] = [
43 | 'referrer' => 'http://www.nic.cl',
44 | 'registrar' => 'NIC Chile',
45 | ];
46 |
47 | return $r;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Handlers/DeHandler.php:
--------------------------------------------------------------------------------
1 | 'Domain:',
19 | 'domain.nserver.' => 'Nserver:',
20 | 'domain.nserver.#' => 'Nsentry:',
21 | 'domain.status' => 'Status:',
22 | 'domain.changed' => 'Changed:',
23 | 'domain.desc.' => 'Descr:',
24 | 'owner' => '[Holder]',
25 | 'admin' => '[Admin-C]',
26 | 'tech' => '[Tech-C]',
27 | 'zone' => '[Zone-C]',
28 | ];
29 |
30 | $extra = [
31 | 'city:' => 'address.city',
32 | 'postalcode:' => 'address.pcode',
33 | 'countrycode:' => 'address.country',
34 | 'remarks:' => '',
35 | 'sip:' => 'sip',
36 | 'type:' => '',
37 | ];
38 |
39 | $rawData = $this->removeBlankLines($data_str['rawdata']);
40 | $r = [
41 | 'rawdata' => $data_str['rawdata'],
42 | 'regrinfo' => $this->easy_parser($rawData, $items, 'ymd', $extra),
43 | 'regyinfo' => [
44 | 'registrar' => 'DENIC eG',
45 | 'referrer' => 'http://www.denic.de/',
46 | ],
47 | ];
48 |
49 | if (!isset($r['regrinfo']['domain']['status']) || $r['regrinfo']['domain']['status'] === 'free') {
50 | $r['regrinfo']['registered'] = 'no';
51 | } else {
52 | if (isset($r['regrinfo']['domain']['changed'])) {
53 | $r['regrinfo']['domain']['changed'] = substr($r['regrinfo']['domain']['changed'], 0, 10);
54 | }
55 | $r['regrinfo']['registered'] = 'yes';
56 | }
57 |
58 | return $r;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/Handlers/EduHandler.php:
--------------------------------------------------------------------------------
1 | 'Domain name:',
19 | 'domain.sponsor' => 'Registrar:',
20 | 'domain.nserver' => 'Name Servers:',
21 | 'domain.changed' => 'Domain record last updated:',
22 | 'domain.created' => 'Domain record activated:',
23 | 'domain.expires' => 'Domain expires:',
24 | 'owner' => 'Registrant:',
25 | 'admin' => 'Administrative Contact:',
26 | 'tech' => 'Technical Contact:',
27 | 'billing' => 'Billing Contact:',
28 | ];
29 |
30 | $rawData = $this->removeBlankLines($data_str['rawdata']);
31 | $r = [
32 | 'rawdata' => $data_str['rawdata'],
33 | 'regrinfo' => $this->easy_parser($rawData, $items, 'dmy'),
34 | ];
35 |
36 | if (isset($b['tech'])) {
37 | if ($r['regrinfo']['tech']['name'] === 'Same as above') {
38 | $r['regrinfo']['tech'] = $r['regrinfo']['admin'];
39 | }
40 | }
41 |
42 | if (!isset($r['regrinfo']['domain']['name'])) {
43 | $r['regrinfo']['domain']['name'] = $query;
44 | }
45 |
46 | $r['regyinfo']['referrer'] = 'http://whois.educause.net';
47 | $r['regyinfo']['registrar'] = 'EDUCASE';
48 |
49 | return $r;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/Handlers/HandlerInterface.php:
--------------------------------------------------------------------------------
1 | generic_parser_b($data_str['rawdata']);
15 | $data_str['regyinfo'] = $this->parseRegistryInfo($data_str['rawdata']);
16 |
17 | return $data_str;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/whois.ca.php:
--------------------------------------------------------------------------------
1 | $data_str['rawdata'],
39 | ];
40 | $r['regrinfo'] = generic_parser_b($data_str['rawdata'], [], 'ymd');
41 |
42 | $r['regyinfo'] = array(
43 | 'registrar' => 'CIRA',
44 | 'referrer' => 'http://www.cira.ca/'
45 | );
46 | return $r;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/whois.cat.php:
--------------------------------------------------------------------------------
1 | $data_str['rawdata'],
38 | ];
39 |
40 | $r['regrinfo'] = generic_parser_b($data_str['rawdata']);
41 |
42 | if (!isset($r['regrinfo']['domain']['name'])) {
43 | $r['regrinfo']['registered'] = 'no';
44 | }
45 |
46 | $r['regyinfo']['referrer'] = 'http://www.domini.cat/';
47 | $r['regyinfo']['registrar'] = 'Domini punt CAT';
48 |
49 | return $r;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/whois.co.php:
--------------------------------------------------------------------------------
1 | $data_str['rawdata'],
38 | ];
39 |
40 | $r['regrinfo'] = generic_parser_b($data_str['rawdata'], [], 'mdy');
41 | $r['regyinfo']['referrer'] = 'http://www.cointernet.com.co/';
42 | $r['regyinfo']['registrar'] = '.CO Internet, S.A.S.';
43 |
44 | return $r;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/whois.dev.php:
--------------------------------------------------------------------------------
1 | generic_parser_b($data_str['rawdata']),
38 | 'rawdata' => $data_str['rawdata'],
39 | ];
40 |
41 | return $r;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/whois.fm.php:
--------------------------------------------------------------------------------
1 | $data_str['rawdata'],
38 | ];
39 |
40 | $r['regrinfo'] = generic_parser_b($data_str['rawdata']);
41 |
42 | if (!isset($r['regrinfo']['domain']['name'])) {
43 | $r['regrinfo']['registered'] = 'no';
44 | }
45 |
46 | $r['regyinfo']['referrer'] = 'http://www.dot.dm';
47 | $r['regyinfo']['registrar'] = 'dotFM';
48 |
49 | return $r;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/whois.gtld.afternic.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact',
40 | 'tech' => 'Technical Contact',
41 | 'zone' => 'Zone Contact',
42 | 'domain.name' => 'Domain Name:',
43 | 'domain.changed' => 'Last updated on',
44 | 'domain.created' => 'Domain created on',
45 | 'domain.expires' => 'Domain expires on'
46 | );
47 |
48 | return easy_parser($data_str, $items, 'dmy', array(), false, true);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/whois.gtld.alldomains.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative',
40 | 'tech' => 'Technical',
41 | 'domain.name' => 'Domain name:',
42 | 'domain.sponsor' => 'Registrar:',
43 | 'domain.nserver.' => 'Domain servers in listed order:'
44 | );
45 |
46 | return easy_parser($data_str, $items, 'ymd');
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/whois.gtld.ascio.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative ',
40 | 'tech' => 'Technical ',
41 | 'domain.name' => 'Domain name:',
42 | 'domain.nserver.' => 'Domain servers in listed order:',
43 | 'domain.created' => 'Record created:',
44 | 'domain.expires' => 'Record expires:',
45 | 'domain.changed' => 'Record last updated:'
46 | );
47 |
48 | return easy_parser($data_str, $items, 'ymd', array(), false, true);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/whois.gtld.assorted.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact:',
40 | 'tech' => 'Technical Contact:',
41 | 'domain.name' => 'Domain Name:',
42 | 'domain.nserver.' => 'Domain servers in listed order:',
43 | 'domain.created' => 'Record created on',
44 | 'domain.expires' => 'Record expires on',
45 | 'domain.changed' => 'Record last updated'
46 | );
47 |
48 | return easy_parser($data_str, $items, 'ymd', array(), false, true);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/whois.gtld.corporatedomains.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact',
40 | 'tech' => 'Technical Contact',
41 | 'zone' => 'Zone Contact',
42 | 'domain.name' => 'Domain Name:',
43 | 'domain.changed' => 'Last updated on',
44 | 'domain.created' => 'Domain created on',
45 | 'domain.expires' => 'Domain expires on',
46 | 'domain.sponsor' => 'Registrar Name....:',
47 | 'domain.nserver' => 'DNS Servers:'
48 | );
49 |
50 | return easy_parser($data_str, $items, 'dmy', array(), false, true);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/whois.gtld.directnic.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact',
40 | 'tech' => 'Technical Contact',
41 | 'domain.name' => 'Domain Name:',
42 | 'domain.sponsor' => 'Registration Service Provider:',
43 | 'domain.nserver' => 'Domain servers in listed order:',
44 | 'domain.changed' => 'Record last updated ',
45 | 'domain.created' => 'Record created on ',
46 | 'domain.expires' => 'Record expires on ',
47 | '' => 'By submitting a WHOIS query'
48 | );
49 |
50 | return easy_parser($data_str, $items, 'mdy', array(), false, true);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/whois.gtld.domaindiscover.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact',
40 | 'tech' => 'Technical Contact',
41 | 'zone' => 'Zone Contact',
42 | 'domain.name' => 'Domain Name:',
43 | 'domain.changed' => 'Last updated on',
44 | 'domain.created' => 'Domain created on',
45 | 'domain.expires' => 'Domain expires on'
46 | );
47 |
48 | return easy_parser($data_str, $items, 'dmy', array(), false, true);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/whois.gtld.domainpeople.php:
--------------------------------------------------------------------------------
1 | 'Registrant Contact:',
40 | 'admin' => 'Administrative Contact:',
41 | 'tech' => 'Technical Contact:',
42 | 'domain.name' => 'Domain name:',
43 | 'domain.sponsor' => 'Registration Service Provided By:',
44 | 'domain.referrer' => 'Contact:',
45 | 'domain.nserver.' => 'Name Servers:',
46 | 'domain.created' => 'Creation date:',
47 | 'domain.expires' => 'Expiration date:',
48 | // 'domain.changed' => 'Record last updated on',
49 | 'domain.status' => 'Status:'
50 | );
51 |
52 | $r = easy_parser($data_str, $items, 'dmy', array(), false, true);
53 | if (isset($r['domain']['sponsor']) && is_array($r['domain']['sponsor'])) {
54 | $r['domain']['sponsor'] = $r['domain']['sponsor'][0];
55 | }
56 | return $r;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/whois.gtld.dotster.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative',
40 | 'tech' => 'Technical',
41 | 'domain.nserver' =>
42 | 'Domain servers in listed order:',
43 | 'domain.name' => 'Domain name:',
44 | 'domain.created' => 'Created on:',
45 | 'domain.expires' => 'Expires on:',
46 | 'domain.changed' => 'Last Updated on:',
47 | 'domain.sponsor' => 'Registrar:'
48 | );
49 |
50 | return easy_parser($data_str, $items, 'dmy');
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/whois.gtld.dreamhost.php:
--------------------------------------------------------------------------------
1 | 'Registrant Contact:',
39 | 'admin' => 'Administrative Contact:',
40 | 'tech' => 'Technical Contact:',
41 | 'billing' => 'Billing Contact:',
42 | 'domain.name' => 'Domain Name:',
43 | 'domain.nserver' => 'Domain servers in listed order:',
44 | 'domain.created' => 'Record created on',
45 | 'domain.expires' => 'Record expires on'
46 | );
47 |
48 | $r = easy_parser($data_str, $items, 'dmy', array(), false, true);
49 | if (isset($r['domain']['sponsor']) && is_array($r['domain']['sponsor'])) {
50 | $r['domain']['sponsor'] = $r['domain']['sponsor'][0];
51 | }
52 | return $r;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/whois.gtld.fabulous.php:
--------------------------------------------------------------------------------
1 | 'Domain ' . $query . ':',
39 | 'admin' => 'Administrative contact:',
40 | 'tech' => 'Technical contact:',
41 | 'billing' => 'Billing contact:',
42 | '' => 'Record dates:'
43 | );
44 |
45 | $r = easy_parser($data_str, $items, 'mdy', array(), false, true);
46 |
47 | if (!isset($r['tech'])) {
48 | $r['tech'] = $r['billing'];
49 | }
50 |
51 | if (!isset($r['admin'])) {
52 | $r['admin'] = $r['tech'];
53 | }
54 |
55 | return $r;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/whois.gtld.gandi.php:
--------------------------------------------------------------------------------
1 | 'owner-c',
39 | 'admin' => 'admin-c',
40 | 'tech' => 'tech-c',
41 | 'billing' => 'bill-c'
42 | );
43 |
44 | $trans = array(
45 | 'nic-hdl:' => 'handle',
46 | 'person:' => 'name',
47 | 'zipcode:' => 'address.pcode',
48 | 'city:' => 'address.city',
49 | 'lastupdated:' => 'changed',
50 | 'owner-name:' => ''
51 | );
52 |
53 | return easy_parser($data_str, $items, 'dmy', $trans);
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/whois.gtld.genericb.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact',
40 | 'tech' => 'Technical Contact',
41 | 'domain.name' => 'Domain Name:',
42 | 'domain.nserver.' => 'Domain servers in listed order:',
43 | 'domain.created' => 'Created on:',
44 | 'domain.expires' => 'Expires on:',
45 | 'domain.changed' => 'Last Updated on:',
46 | 'domain.sponsor' => 'Registered through:'
47 | );
48 |
49 | $r = get_blocks($data_str, $items);
50 | $r['owner'] = get_contact($r['owner']);
51 | $r['admin'] = get_contact($r['admin'], array(), true);
52 | $r['tech'] = get_contact($r['tech'], array(), true);
53 | return format_dates($r, 'dmy');
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/whois.gtld.iana.php:
--------------------------------------------------------------------------------
1 | 'contact: administrative',
39 | 'tech' => 'contact: technical',
40 | 'domain.nserver.' => 'nserver:',
41 | 'domain.created' => 'created:',
42 | 'domain.changed' => 'changed:',
43 | 'domain.source' => 'source:',
44 | 'domain.name' => 'domain:',
45 | 'disclaimer.' => '% '
46 | );
47 |
48 | return easy_parser($data_str, $items, 'Ymd', array(), false, false, 'owner');
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/whois.gtld.itsyourdomain.php:
--------------------------------------------------------------------------------
1 | 'Registrant',
39 | 'admin' => 'Administrative',
40 | 'tech' => 'Technical',
41 | 'billing' => 'Billing',
42 | 'domain.name' => 'Domain:',
43 | 'domain.nserver.' => 'Domain Name Servers:',
44 | 'domain.created' => 'Record created on ',
45 | 'domain.expires' => 'Record expires on ',
46 | 'domain.changed' => 'Record last updated on '
47 | );
48 |
49 | return easy_parser($data_str, $items, 'mdy');
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/whois.gtld.moniker.php:
--------------------------------------------------------------------------------
1 | 'Registrant',
39 | 'admin' => 'Administrative ',
40 | 'tech' => 'Technical ',
41 | 'billing' => 'Billing ',
42 | 'domain.name' => 'Domain Name:',
43 | 'domain.nserver.' => 'Domain servers in listed order:',
44 | 'domain.created' => 'Record created on: ',
45 | 'domain.expires' => 'Domain Expires on: ',
46 | 'domain.changed' => 'Database last updated on: '
47 | );
48 |
49 | return easy_parser($data_str, $items, 'ymd');
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/whois.gtld.name.php:
--------------------------------------------------------------------------------
1 | 'REGISTRANT CONTACT INFO',
39 | 'admin' => 'ADMINISTRATIVE CONTACT INFO',
40 | 'tech' => 'TECHNICAL CONTACT INFO',
41 | 'billing' => 'BILLING CONTACT INFO',
42 | 'domain.name' => 'Domain Name:',
43 | 'domain.sponsor' => 'Registrar',
44 | 'domain.created' => 'Creation Date',
45 | 'domain.expires' => 'Expiration Date'
46 | );
47 |
48 | $extra = array(
49 | 'phone:' => 'phone',
50 | 'email address:' => 'email'
51 | );
52 |
53 | return easy_parser($data_str, $items, 'y-m-d', $extra, false, true);
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/whois.gtld.namejuice.php:
--------------------------------------------------------------------------------
1 | 'Registrant Contact:',
39 | 'admin' => 'Administrative Contact:',
40 | 'tech' => 'Technical Contact:',
41 | 'domain.name' => 'Domain name:',
42 | 'domain.nserver.' => 'Name Servers:',
43 | 'domain.created' => 'Creation date:',
44 | 'domain.expires' => 'Expiration date:',
45 | 'domain.changed' => 'Update date:',
46 | 'domain.status' => 'Status:',
47 | 'domain.sponsor' => 'Registration Service Provided By:'
48 | );
49 |
50 | return easy_parser($data_str, $items, 'dmy', array(), true, true);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/whois.gtld.names4ever.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact',
40 | 'tech' => 'Technical Contact',
41 | 'domain.name' => 'Domain Name:',
42 | 'domain.sponsor' => 'Registrar Name....:',
43 | 'domain.referrer' => 'Registrar Homepage:',
44 | 'domain.nserver' => 'DNS Servers:',
45 | 'domain.created' => 'Record created on',
46 | 'domain.expires' => 'Record expires on',
47 | 'domain.changed' => 'Record last updated on',
48 | 'domain.status' => 'Domain status:'
49 | );
50 |
51 | return easy_parser($data_str, $items, 'dmy', array(), false, true);
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/whois.gtld.namevault.php:
--------------------------------------------------------------------------------
1 | 'Registrant',
39 | 'admin' => 'Administrative Contact:',
40 | 'tech' => 'Technical Contact:',
41 | 'billing' => 'Billing Contact:',
42 | 'domain.name' => 'Domain Name:',
43 | 'domain.nserver.' => 'Name Servers',
44 | 'domain.created' => 'Creation Date:',
45 | 'domain.expires' => 'Expiration Date:',
46 | 'domain.status' => 'Status:'
47 | );
48 |
49 | return easy_parser($data_str, $items, 'dmy', array(), true, true);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/whois.gtld.networksolutions.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact',
40 | 'tech' => 'Technical Contact',
41 | 'domain.name' => 'Domain Name:',
42 | 'domain.nserver.' => 'Domain servers in listed order:',
43 | 'domain.created' => 'Record created on',
44 | 'domain.expires' => 'Record expires on'
45 | );
46 |
47 | return easy_parser($data_str, $items, 'dmy', array(), true, true);
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/whois.gtld.nicline.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative contact:',
40 | 'tech' => 'Technical contact:',
41 | 'domain.name' => 'Domain name:',
42 | 'domain.nserver.' => 'Domain servers in listed order:',
43 | 'domain.created' => 'Created:',
44 | 'domain.expires' => 'Expires:',
45 | 'domain.changed' => 'Last updated:'
46 | );
47 |
48 | return easy_parser($data_str, $items, 'dmy');
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/whois.gtld.opensrs.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact',
40 | 'tech' => 'Technical Contact',
41 | 'domain.name' => 'Domain name:',
42 | '' => 'Registration Service Provider:',
43 | 'domain.nserver' => 'Domain servers in listed order:',
44 | 'domain.changed' => 'Record last updated on',
45 | 'domain.created' => 'Record created on',
46 | 'domain.expires' => 'Record expires on',
47 | 'domain.sponsor' => 'Registrar of Record:'
48 | );
49 |
50 | $r = easy_parser($data_str, $items, 'dmy', array(), false, true);
51 |
52 | if (isset($r['domain']['sponsor']) && is_array($r['domain']['sponsor'])) {
53 | $r['domain']['sponsor'] = $r['domain']['sponsor'][0];
54 | }
55 |
56 | return $r;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/whois.gtld.ovh.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact:',
40 | 'tech' => 'Technical Contact:',
41 | 'billing' => 'Billing Contact:',
42 | 'domain.sponsor' => 'Registrar of Record:',
43 | 'domain.changed' => 'Record last updated on',
44 | 'domain.expires' => 'Record expires on',
45 | 'domain.created' => 'Record created on'
46 | );
47 |
48 | return easy_parser($data_str, $items, 'mdy', array(), false, true);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/whois.gtld.publicdomainregistry.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'owner#' => '(Registrant):',
40 | 'admin' => 'Administrative Contact',
41 | 'tech' => 'Technical Contact',
42 | 'billing' => 'Billing Contact',
43 | 'domain.name' => 'Domain name:',
44 | 'domain.sponsor' => 'Registration Service Provided By:',
45 | 'domain.nserver' => 'Domain servers in listed order:',
46 | 'domain.changed' => 'Record last updated ',
47 | 'domain.created' => 'Record created on',
48 | 'domain.created#' => 'Creation Date:',
49 | 'domain.expires' => 'Record expires on',
50 | 'domain.expires#' => 'Expiration Date:',
51 | 'domain.status' => 'Status:'
52 | );
53 |
54 | return easy_parser($data_str, $items, 'mdy', array(), true, true);
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/whois.gtld.srsplus.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative',
40 | 'tech' => 'Technical',
41 | 'billing' => 'Billing',
42 | 'domain.name' => 'Domain Name:',
43 | 'domain.nserver' => 'Domain servers:',
44 | 'domain.created' => 'Record created on',
45 | 'domain.expires' => 'Record expires on'
46 | );
47 |
48 | return easy_parser($data_str, $items, 'ymd', array(), true, true);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/whois.gtld.tmagnic.php:
--------------------------------------------------------------------------------
1 | 'Owner Contact:',
39 | 'admin' => 'Admin Contact',
40 | 'tech' => 'Technical Contact',
41 | 'domain.name' => 'Domain Name:',
42 | 'domain.nserver.' => 'Domain servers in listed order:',
43 | 'domain.expires' => 'Record expires on: ',
44 | 'domain.changed' => 'Record last updated on: ',
45 | '' => 'Zone Contact',
46 | '#' => 'Punycode Name:'
47 | );
48 |
49 | return easy_parser($data_str, $items, 'ymd', array(), false, true);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/whois.gtld.tvcorp.php:
--------------------------------------------------------------------------------
1 | 'Registrant',
39 | 'admin' => 'Admin',
40 | 'tech' => 'Technical',
41 | 'billing' => 'Billing',
42 | 'domain.nserver.' => 'Domain servers:',
43 | 'domain.created' => 'Record created on',
44 | 'domain.expires' => 'Record expires on'
45 | );
46 |
47 | return easy_parser($data_str, $items, 'mdy');
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/whois.gtld.wildwestdomains.php:
--------------------------------------------------------------------------------
1 | 'Registrant:',
39 | 'admin' => 'Administrative Contact:',
40 | 'tech' => 'Technical Contact:',
41 | 'domain.name' => 'Domain name:',
42 | 'domain.sponsor' => 'Registered through:',
43 | 'domain.nserver' => 'Domain servers in listed order:',
44 | 'domain.created' => 'Created on:',
45 | 'domain.expires' => 'Expires on:',
46 | 'domain.changed' => 'Last Updated on:'
47 | );
48 |
49 | return easy_parser($data_str, $items, 'mdy');
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/whois.hu.php:
--------------------------------------------------------------------------------
1 | 'domain.name',
38 | 'record created:' => 'domain.created',
39 | ];
40 |
41 | $r = [
42 | 'rawdata' => $data_str['rawdata'],
43 | ];
44 |
45 | $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'ymd');
46 |
47 | if (isset($r['regrinfo']['domain'])) {
48 | $r['regrinfo']['registered'] = 'yes';
49 | } else {
50 | $r['regrinfo']['registered'] = 'no';
51 | }
52 |
53 | $r['regyinfo'] = [
54 | 'referrer' => 'http://www.nic.hu',
55 | 'registrar' => 'HUNIC',
56 | ];
57 |
58 | return $r;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/whois.in.php:
--------------------------------------------------------------------------------
1 | 'http://whois.registry.in',
41 | 'registrar' => 'INRegistry'
42 | );
43 | return $r;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/whois.info.php:
--------------------------------------------------------------------------------
1 | 'http://whois.afilias.info',
41 | 'registrar' => 'Afilias Global Registry Services'
42 | );
43 | return $r;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/whois.int.php:
--------------------------------------------------------------------------------
1 | parse($data_str['rawdata'], $query);
40 | $r['regyinfo']['referrer'] = 'http://www.iana.org/int-dom/int.htm';
41 | $r['regyinfo']['registrar'] = 'Internet Assigned Numbers Authority';
42 | return $r;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/whois.ir.php:
--------------------------------------------------------------------------------
1 | 'handle',
44 | 'org' => 'organization',
45 | 'e-mail' => 'email',
46 | 'person' => 'name',
47 | 'fax-no' => 'fax',
48 | 'domain' => 'name'
49 | );
50 |
51 | $contacts = array(
52 | 'admin-c' => 'admin',
53 | 'tech-c' => 'tech',
54 | 'holder-c' => 'owner'
55 | );
56 |
57 | $reg = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'Ymd');
58 |
59 | $r = array();
60 | $r['regrinfo'] = $reg;
61 | $r['regyinfo'] = array(
62 | 'referrer' => 'http://whois.nic.ir/',
63 | 'registrar' => 'NIC-IR'
64 | );
65 | return $r;
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/whois.london.php:
--------------------------------------------------------------------------------
1 | generic_parser_b($data_str['rawdata']),
38 | 'rawdata' => $data_str['rawdata'],
39 | ];
40 |
41 | if (!isset($r['regrinfo']['domain']['name'])) {
42 | $r['regrinfo']['domain']['name'] = $query;
43 | }
44 |
45 | return $r;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/whois.me.php:
--------------------------------------------------------------------------------
1 | 'http://domain.me',
41 | 'registrar' => 'doMEn'
42 | );
43 | return $r;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/whois.mobi.php:
--------------------------------------------------------------------------------
1 | 'http://musedoma.museum',
41 | 'registrar' => 'Museum Domain Management Association'
42 | );
43 | return $r;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/whois.name.php:
--------------------------------------------------------------------------------
1 | 'http://www.nic.name/',
41 | 'registrar' => 'Global Name Registry'
42 | );
43 | return $r;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/whois.no.php:
--------------------------------------------------------------------------------
1 | 'domain.name',
38 | 'Created:' => 'domain.created',
39 | 'Last updated:' => 'domain.changed',
40 | 'NORID Handle...............:' => 'domain.handle',
41 | ];
42 |
43 | $r = [
44 | 'regrinfo' => generic_parser_b($data_str['rawdata'], $items, 'ymd', false),
45 | 'regyinfo' => [
46 | 'referrer' => 'https://www.norid.no/en/',
47 | 'registrar' => 'Norid',
48 | ],
49 | 'rawdata' => $data_str['rawdata'],
50 | ];
51 |
52 | $r['regrinfo']['registered'] = isset($r['regrinfo']['domain']['name']) ? 'yes' : 'no';
53 |
54 | return $r;
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/src/whois.org.php:
--------------------------------------------------------------------------------
1 | generic_parser_b($data_str['rawdata']),
44 | ];
45 |
46 | if (!strncmp($data_str['rawdata'][0], 'WHOIS LIMIT EXCEEDED', 20)) {
47 | $r['regrinfo']['registered'] = 'unknown';
48 | }
49 |
50 | $r['regyinfo']['referrer'] = 'http://www.pir.org/';
51 | $r['regyinfo']['registrar'] = 'Public Interest Registry';
52 |
53 | if (!array_key_exists('rawdata', $r) && array_key_exists('rawdata', $data_str)) {
54 | $r['rawdata'] = $data_str['rawdata'];
55 | }
56 |
57 | return $r;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/src/whois.ph.php:
--------------------------------------------------------------------------------
1 | 'domain.created',
38 | 'changed:' => 'domain.changed',
39 | 'status:' => 'domain.status',
40 | 'nserver:' => 'domain.nserver.'
41 | ];
42 |
43 | $r = [
44 | 'regrinfo' => generic_parser_b($data_str['rawdata'], $items),
45 | 'rawdata' => $data_str['rawdata'],
46 | ];
47 |
48 | if (!isset($r['regrinfo']['domain']['name'])) {
49 | $r['regrinfo']['domain']['name'] = $query;
50 | }
51 |
52 | return $r;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/whois.pl.php:
--------------------------------------------------------------------------------
1 | 'created:',
39 | 'domain.changed' => 'last modified:',
40 | 'domain.sponsor' => 'REGISTRAR:',
41 | '#' => 'WHOIS displays data with a delay not exceeding 15 minutes in relation to the .pl Registry system'
42 | );
43 |
44 | $r = array();
45 | $r['regrinfo'] = easy_parser($data_str['rawdata'], $items, 'ymd');
46 |
47 | $r['regyinfo'] = array(
48 | 'referrer' => 'http://www.dns.pl/english/index.html',
49 | 'registrar' => 'NASK'
50 | );
51 | return $r;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/whois.pro.php:
--------------------------------------------------------------------------------
1 | 'http://www.nic.sc',
41 | 'registrar' => 'VCS (Pty) Limited'
42 | );
43 | return $r;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/whois.se.php:
--------------------------------------------------------------------------------
1 | 'domain.name',
39 | 'state:' => 'domain.status.',
40 | 'status:' => 'domain.status.',
41 | 'expires:' => 'domain.expires',
42 | 'created:' => 'domain.created',
43 | 'modified:' => 'domain.changed',
44 | 'nserver:' => 'domain.nserver.',
45 | 'registrar:' => 'domain.sponsor',
46 | 'holder:' => 'owner.handle',
47 | ];
48 |
49 | $r = [];
50 | $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'ymd', false);
51 |
52 | $r['regrinfo']['registered'] = isset($r['regrinfo']['domain']['name']) ? 'yes' : 'no';
53 |
54 | $r['regyinfo'] = [
55 | 'referrer' => 'http://www.nic-se.se',
56 | 'registrar' => 'NIC-SE'
57 | ];
58 | $r['rawdata'] = $data_str['rawdata'];
59 | return $r;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/whois.si.php:
--------------------------------------------------------------------------------
1 | 'handle',
39 | 'nameserver' => 'nserver'
40 | );
41 |
42 | $contacts = array(
43 | 'registrant' => 'owner',
44 | 'tech-c' => 'tech'
45 | );
46 |
47 | $r = array();
48 | $r['regrinfo'] = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'Ymd');
49 | $r['regyinfo'] = array(
50 | 'referrer' => 'http://www.arnes.si',
51 | 'registrar' => 'ARNES'
52 | );
53 | return $r;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/whois.tel.php:
--------------------------------------------------------------------------------
1 | 'http://www.telnic.org',
41 | 'registrar' => 'Telnic'
42 | );
43 | return $r;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/whois.today.php:
--------------------------------------------------------------------------------
1 | generic_parser_b($data_str['rawdata']),
38 | 'rawdata' => $data_str['rawdata'],
39 | ];
40 |
41 | if (!isset($r['regrinfo']['domain']['name'])) {
42 | $r['regrinfo']['domain']['name'] = $query;
43 | }
44 |
45 | return $r;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/whois.travel.php:
--------------------------------------------------------------------------------
1 | generic_parser_b($data_str['rawdata'], [], 'ymd'),
44 | 'regyinfo' => [
45 | 'referrer' => 'http://www.neustar.us',
46 | 'registrar' => 'NEUSTAR INC.',
47 | ],
48 | 'rawdata' => $data_str['rawdata'],
49 | ];
50 |
51 | return $r;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/whois.xxx.php:
--------------------------------------------------------------------------------
1 | =')) {
16 | self::markTestSkipped('Hangs under php-8.0');
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/tests/Handlers/AeroHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new AeroHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseNicDotAero()
38 | {
39 | $query = 'nic.aero';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'NIC.AERO',
52 | 'changed' => '2020-03-08',
53 | 'created' => '2002-03-08',
54 | 'expires' => '2021-03-08',
55 | ],
56 | 'registered' => 'yes', // Currently broken
57 | ];
58 |
59 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
60 | $this->assertArrayHasKey('rawdata', $actual);
61 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/tests/Handlers/AgHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new AgHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseNicDotAg()
38 | {
39 | $query = 'nic.ag';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'NIC.AG',
52 | 'changed' => '2019-03-02',
53 | 'created' => '1998-05-02',
54 | 'expires' => '2025-05-02',
55 | ],
56 | 'registered' => 'yes',
57 | ];
58 |
59 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
60 | $this->assertArrayHasKey('rawdata', $actual);
61 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/tests/Handlers/AmHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new AmHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseIsocDotAm()
38 | {
39 | $query = 'isoc.am';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'isoc.am',
52 | 'changed' => '2018-03-27',
53 | 'created' => '2000-01-01',
54 | ],
55 | 'registered' => 'yes',
56 | ];
57 |
58 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
59 | $this->assertArrayHasKey('rawdata', $actual);
60 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/tests/Handlers/AppHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new AppHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseGoogleDotApp()
38 | {
39 | $query = 'google.app';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'google.app',
52 | 'changed' => '2018-04-09',
53 | 'created' => '2018-03-29',
54 | 'expires' => '2019-03-29',
55 | ],
56 | 'registered' => 'yes',
57 | ];
58 |
59 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
60 | $this->assertArrayHasKey('rawdata', $actual);
61 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/tests/Handlers/AsiaHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new AsiaHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseNicDotAsia()
38 | {
39 | $query = 'nic.asia';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'NIC.ASIA',
52 | 'changed' => '2020-04-28',
53 | 'created' => '2020-02-28',
54 | 'expires' => '2021-02-28',
55 | ],
56 | 'registered' => 'yes',
57 | ];
58 |
59 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
60 | $this->assertArrayHasKey('rawdata', $actual);
61 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/tests/Handlers/AtHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new AtHandler();
29 | $this->handler->atepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function nicDotAt()
38 | {
39 | $query = 'nic.at';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | // 'name' => 'nic.at',
52 | 'changed' => '2020-04-27',
53 | ],
54 | 'registered' => 'yes',
55 | ];
56 |
57 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
58 | $this->assertArrayHasKey('rawdata', $actual);
59 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/tests/Handlers/AuHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new AuHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseTelstraDotComDotAu()
38 | {
39 | $query = 'telstra.com.au';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'TELSTRA.COM.AU',
52 | 'changed' => '2020-04-27',
53 | ],
54 | 'registered' => 'yes',
55 | ];
56 |
57 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
58 | $this->assertArrayHasKey('rawdata', $actual);
59 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/tests/Handlers/BeHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new BeHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseNicDotBe()
38 | {
39 | $query = 'nic.be';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'nic.be',
52 | // 'changed' => '2018-01-24',
53 | 'created' => '1998-04-01',
54 | ],
55 | 'registered' => 'yes',
56 | ];
57 |
58 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
59 | $this->assertArrayHasKey('rawdata', $actual);
60 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/tests/Handlers/BhHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new BhHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseNicDotBh()
38 | {
39 | $query = 'nic.bh';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'NIC.BH',
52 | 'changed' => '2019-08-01',
53 | 'created' => '2019-04-24',
54 | 'expires' => '2029-04-24',
55 | ],
56 | 'registered' => 'yes',
57 | ];
58 |
59 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
60 | $this->assertArrayHasKey('rawdata', $actual);
61 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/tests/Handlers/BizHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new BizHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseNeulevelDotBiz()
38 | {
39 | $query = 'neulevel.biz';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'neulevel.biz',
52 | 'changed' => '2020-03-05',
53 | 'created' => '2001-09-30',
54 | 'expires' => '2020-11-06',
55 | ],
56 | 'registered' => 'yes',
57 | ];
58 |
59 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
60 | $this->assertArrayHasKey('rawdata', $actual);
61 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/tests/Handlers/BrHandlerTest.php:
--------------------------------------------------------------------------------
1 | handler = new BrHandler();
29 | $this->handler->deepWhois = false;
30 | }
31 |
32 | /**
33 | * @return void
34 | *
35 | * @test
36 | */
37 | public function parseRegistroDotBr()
38 | {
39 | $query = 'registro.br';
40 |
41 | $fixture = $this->loadFixture($query);
42 | $data = [
43 | 'rawdata' => $fixture,
44 | 'regyinfo' => [],
45 | ];
46 |
47 | $actual = $this->handler->parse($data, $query);
48 |
49 | $expected = [
50 | 'domain' => [
51 | 'name' => 'registro.br',
52 | 'changed' => '2018-04-02',
53 | 'created' => '1999-02-21',
54 | ],
55 | 'registered' => 'yes',
56 | ];
57 |
58 | Assert::assertArraySubset($expected, $actual['regrinfo'], 'Whois data may have changed');
59 | $this->assertArrayHasKey('rawdata', $actual);
60 | Assert::assertArraySubset($fixture, $actual['rawdata'], 'Fixture data may be out of date');
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/tests/Handlers/HandlerTest.php:
--------------------------------------------------------------------------------
1 | assertTrue($ipTools->validIp($ip));
14 | }
15 |
16 | public function validIpsProvider()
17 | {
18 | return array(
19 | array('123.123.123.123'),
20 | array('1a80:1f45::ebb:12'),
21 | );
22 | }
23 |
24 | /**
25 | * @dataProvider invalidIpsProvider
26 | */
27 | public function testInvalidIp($ip)
28 | {
29 | $ipTools = new IpTools;
30 | $this->assertFalse($ipTools->validIp($ip));
31 | }
32 |
33 | public function invalidIpsProvider()
34 | {
35 | return array(
36 | array(''),
37 | array('169.254.255.200'),
38 | array('172.17.255.100'),
39 | array('123.a15.255.100'),
40 | array('fd80::1'),
41 | array('fc80:19c::1'),
42 | array('1a80:1f45::ebm:12'),
43 | array('[1a80:1f45::ebb:12]'),
44 | );
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/tests/WhoisTest.php:
--------------------------------------------------------------------------------
1 | lookup('google.com');
11 | $this->assertEquals('yes', $result['regrinfo']['registered']);
12 | }
13 |
14 | /**
15 | * @dataProvider domainsProvider
16 | */
17 | public function testQtype($type, $domain)
18 | {
19 | $whois = new Whois;
20 | $this->assertEquals($type, $whois->getQueryType($domain));
21 | }
22 |
23 | public function domainsProvider()
24 | {
25 | return array(
26 | array(Whois::QTYPE_DOMAIN, 'www.google.com'),
27 | array(Whois::QTYPE_DOMAIN, 'президент.рф'),
28 | array(Whois::QTYPE_IPV4, '212.212.12.12'),
29 | array(Whois::QTYPE_UNKNOWN, '127.0.0.1'),
30 | array(Whois::QTYPE_IPV6, '1a80:1f45::ebb:12'),
31 | array(Whois::QTYPE_UNKNOWN, 'fc80:19c::1'),
32 | array(Whois::QTYPE_AS, 'ABCD_EF-GH:IJK'),
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/tests/bootstrap.php:
--------------------------------------------------------------------------------
1 | %1.txt
3 | git add %1.txt
4 |
--------------------------------------------------------------------------------
/tests/fixtures/denic.de.txt:
--------------------------------------------------------------------------------
1 | % Restricted rights.
2 | %
3 | % Terms and Conditions of Use
4 | %
5 | % The above data may only be used within the scope of technical or
6 | % administrative necessities of Internet operation or to remedy legal
7 | % problems.
8 | % The use for other purposes, in particular for advertising, is not permitted.
9 | %
10 | % The DENIC whois service on port 43 doesn't disclose any information concerning
11 | % the domain holder, general request and abuse contact.
12 | % This information can be obtained through use of our web-based whois service
13 | % available at the DENIC website:
14 | % http://www.denic.de/en/domains/whois-service/web-whois.html
15 | %
16 | %
17 |
18 | Domain: denic.de
19 | Nserver: ns1.denic.de 2001:668:1f:11:0:0:0:106 77.67.63.106
20 | Nserver: ns2.denic.de 2a02:568:0:2:0:0:0:54 81.91.164.6
21 | Nserver: ns3.denic.de 195.243.137.27 2003:8:14:0:0:0:0:106
22 | Nserver: ns4.denic.net
23 | Dnskey: 257 3 8 AwEAAb/xrM2MD+xm84YNYby6TxkMaC6PtzF2bB9WBB7ux7iqzhViob4GKvQ6L7CkXjyAxfKbTzrdvXoAPpsAPW4pkThReDAVp3QxvUKrkBM8/uWRF3wpaUoPsAHm1dbcL9aiW3lqlLMZjDEwDfU6lxLcPg9d14fq4dc44FvPx6aYcymkgJoYvR6P1wECpxqlEAR2K1cvMtqCqvVESBQV/EUtWiALNuwR2PbhwtBWJd+e8BdFI7OLkit4uYYux6Yu35uyGQ==
24 | Status: connect
25 | Changed: 2020-05-11T15:36:21+02:00
--------------------------------------------------------------------------------
/tests/fixtures/domainregistry.ie.txt:
--------------------------------------------------------------------------------
1 |
2 | % Rights restricted by copyright; http://iedr.ie/index.php/mnudomregs/mnudnssearch/96
3 | % Do not remove this notice
4 |
5 | Domain: domainregistry.ie
6 | Domain Holder: IE Domain Registry Company Limited By Guarantee
7 | Admin-c: IH4-IEDR
8 | Tech-c: ITS2-IEDR
9 | Account Name: IEDR
10 | Registrar Abuse Contact: abuse@iedr.ie
11 | Registration Date: 19-March-1999
12 | Renewal Date: 01-January-2025
13 | Holder-type: NonBillable
14 | Locked status: N
15 | Renewal status: Active
16 | In-zone: 1
17 | Nserver: ns0.iedr.ie
18 | Nserver: ns3.iedr.ie
19 | Nserver: b.ns.ie
20 | Nserver: auth-ns2.heanet.ie
21 | Nserver: auth-ns3.heanet.ie
22 |
23 |
24 | % Important Notice
25 | % If you believe that information published on this page is incorrect, or should not be published, please contact your Registrar, or the IEDR Registration Services Department who will advise you further.
26 | % You can also contact your Registrar or the IEDR if your domain holder name isn’t showing and you would like it to be published.
27 | % Our contact information is available at https://www.iedr.ie/contact-us/
28 |
--------------------------------------------------------------------------------
/tests/fixtures/dot.ph.txt:
--------------------------------------------------------------------------------
1 | % IANA WHOIS server
2 | % for more information on IANA, visit http://www.iana.org
3 | % This query returned 1 object
4 |
5 | domain: PH
6 |
7 | organisation: PH Domain Foundation
8 | address: 27/F Jollibee Plaza
9 | address: F. Ortigas Ave. Ortigas Center
10 | address: Pasig Metro Manila 1600
11 | address: Philippines
12 |
13 | contact: administrative
14 | name: DOTPH Administrative Contact
15 | organisation: DotPH
16 | address: Rm A, 7/F, China Overseas Building
17 | address: 139 Hennessy Road
18 | address: Wanchai, Hong Kong
19 | address: Hong Kong
20 | phone: +852 5 8085724
21 | e-mail: admin@dot.ph
22 |
23 | contact: technical
24 | name: DOTPH Technical Contact
25 | organisation: DotPH
26 | address: Rm A, 7/F, China Overseas Building
27 | address: 139 Hennessy Road
28 | address: Wanchai, Hong Kong
29 | address: Hong Kong
30 | phone: +852 5 8085724
31 | e-mail: sysadmin@dot.ph
32 |
33 | nserver: 1.NS.PH 206.51.255.1 2620:171:805:ad2:7068:0:0:1
34 | nserver: NS2.CUHK.EDU.HK 137.189.6.21 2405:3000:3:6:0:0:0:15
35 | nserver: NS4.APNIC.NET 2001:dd8:12:0:0:0:0:53 202.12.31.53
36 | nserver: PH.COMMUNITYDNS.NET 194.0.1.23 2001:678:4:0:0:0:0:17
37 |
38 | status: ACTIVE
39 | remarks: Registration information: http://dot.ph
40 |
41 | created: 1990-09-14
42 | changed: 2020-01-31
43 | source: IANA
44 |
--------------------------------------------------------------------------------
/tests/fixtures/eurid.eu.txt:
--------------------------------------------------------------------------------
1 | Connecting to EU.whois-servers.net...
2 |
3 | NOT DISCLOSED!
4 | Visit www.eurid.eu for webbased WHOIS.
5 |
6 | Technical:
7 | Organisation: EURid vzw
8 | Language: en
9 | Email: tech@eurid.eu
10 |
11 | Registrar:
12 | Name: EURid vzw
13 | Website: https://www.eurid.eu
14 |
15 | Name servers:
16 | ns1.eurid.eu (2001:67c:9c:3937::252)
17 | ns1.eurid.eu (185.36.4.252)
18 | nsp.netnod.se
19 | ns4.eurid.eu (2001:67c:40:3937::253)
20 | ns4.eurid.eu (185.36.6.253)
21 | nsx.eurid.eu (185.151.141.1)
22 | nsx.eurid.eu (2a02:568:fe00::6575)
23 | ns3.eurid.eu (2001:67c:9c:3937::253)
24 | ns3.eurid.eu (185.36.4.253)
25 | ns2.eurid.eu (2001:67c:40:3937::252)
26 | ns2.eurid.eu (185.36.6.252)
27 |
28 | Keys:
29 | flags:KSK protocol:3 algorithm:RSA_SHA256 pubKey:AwEAAcOQldGtC33GLx8s335UscKMPlWjDXCqbhR2QyAYcfS4CZS6YHg3A1Zz/K3VurTZF68aSaRkNupZuEgt4jozE3v4+t+2qOfiATvoOCrf74hWduBPwk9Go0z7FVlDkok1/qMQmqOtih8TFP85b+w6F/uyLMZS1JowMDUzRurmHJVoT4lW9+OCdrhuQFK9vU24Y8BmacoRy6mWBCFlysizlOIodwmquOf5A+3Nz0B3TLCK4fIYJYVxCUVlpRJ7uaBS+GLD7afuxkEesReYHgPWZFSDMbXk9Ugh+qUi8tEKKFls9TM3lK9BPBcciXUhI1bRJSHftqcNpMmLqg/79SwoWGc=
30 |
31 | Please visit www.eurid.eu for more info.
32 |
33 | Connecting to SCLOSED!...
34 |
--------------------------------------------------------------------------------
/tests/fixtures/ficora.fi.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsmitty12/phpWhois/2f88d8f02e95b3d959e564b476ecdf791135896d/tests/fixtures/ficora.fi.txt
--------------------------------------------------------------------------------
/tests/fixtures/google.ae.txt:
--------------------------------------------------------------------------------
1 | Domain Name: google.ae
2 | Registrar ID: markmonitor
3 | Registrar Name: MarkMonitor
4 | Status: clientDeleteProhibited
5 | Status: clientUpdateProhibited
6 |
7 | Registrant Contact ID: MMR-171195
8 | Registrant Contact Name: Domain Administrator
9 | Registrant Contact Email: Visit whois.aeda.ae for Web based WhoIs
10 | Registrant Contact Organisation: Google LLC
11 |
12 | Tech Contact ID: MMR-171195
13 | Tech Contact Name: Domain Administrator
14 | Tech Contact Email: Visit whois.aeda.ae for Web based WhoIs
15 | Tech Contact Organisation: Google LLC
16 |
17 | Name Server: ns1.google.com
18 | Name Server: ns2.google.com
--------------------------------------------------------------------------------
/tests/fixtures/google.ch.txt:
--------------------------------------------------------------------------------
1 | Connecting to CH.whois-servers.net...
2 |
3 | Requests of this client are not permitted. Please use https://www.nic.ch/whois/ for queries.
4 |
5 |
6 | Connecting to is client are not permitted. Please use https://www.nic.ch/whois/ for queries....
7 |
--------------------------------------------------------------------------------
/tests/fixtures/google.cl.txt:
--------------------------------------------------------------------------------
1 | %%
2 | %% This is the NIC Chile Whois server (whois.nic.cl).
3 | %%
4 | %% Rights restricted by copyright.
5 | %% See https://www.nic.cl/normativa/politica-publicacion-de-datos-cl.pdf
6 | %%
7 |
8 | Domain name: google.cl
9 | Registrant name: Google LLC
10 | Registrant organisation: Google LLC
11 | Registrar name: MarkMonitor Inc.
12 | Registrar URL: https://markmonitor.com/
13 | Creation date: 2002-10-22 17:48:23 CLST
14 | Expiration date: 2020-11-20 14:48:02 CLST
15 | Name server: ns1.google.com
16 | Name server: ns2.google.com
17 | Name server: ns3.google.com
18 | Name server: ns4.google.com
19 |
20 | %%
21 | %% For communication with domain contacts please use website.
22 | %% See https://www.nic.cl/registry/Whois.do?d=google.cl
23 | %%
--------------------------------------------------------------------------------
/tests/fixtures/google.cn.txt:
--------------------------------------------------------------------------------
1 | Connecting to CN.whois-servers.net...
2 |
3 | Domain Name: google.cn
4 | ROID: 20030311s10001s00033735-cn
5 | Domain Status: clientDeleteProhibited
6 | Domain Status: serverDeleteProhibited
7 | Domain Status: serverUpdateProhibited
8 | Domain Status: clientTransferProhibited
9 | Domain Status: serverTransferProhibited
10 | Registrant: 北京谷翔信息技术有限公司
11 | Registrant Contact Email: dns-admin@google.com
12 | Sponsoring Registrar: 厦门易名科技股份有限公司
13 | Name Server: ns2.google.com
14 | Name Server: ns1.google.com
15 | Name Server: ns3.google.com
16 | Name Server: ns4.google.com
17 | Registration Time: 2003-03-17 12:20:05
18 | Expiration Time: 2022-03-17 12:48:36
19 | DNSSEC: unsigned
20 |
--------------------------------------------------------------------------------
/tests/fixtures/google.co.uk.txt:
--------------------------------------------------------------------------------
1 |
2 | Domain name:
3 | google.co.uk
4 |
5 | Data validation:
6 | Nominet was able to match the registrant's name and address against a 3rd party data source on 10-Dec-2012
7 |
8 | Registrar:
9 | Markmonitor Inc. t/a MarkMonitor Inc. [Tag = MARKMONITOR]
10 | URL: http://www.markmonitor.com
11 |
12 | Relevant dates:
13 | Registered on: 14-Feb-1999
14 | Expiry date: 14-Feb-2021
15 | Last updated: 13-Jan-2020
16 |
17 | Registration status:
18 | Registered until expiry date.
19 |
20 | Name servers:
21 | ns1.google.com
22 | ns2.google.com
23 | ns3.google.com
24 | ns4.google.com
25 |
26 | WHOIS lookup made at 18:48:30 07-Jun-2020
27 |
28 | --
29 | This WHOIS information is provided for free by Nominet UK the central registry
30 | for .uk domain names. This information and the .uk WHOIS are:
31 |
32 | Copyright Nominet UK 1996 - 2020.
33 |
34 | You may not access the .uk WHOIS or use any data from it except as permitted
35 | by the terms of use available in full at https://www.nominet.uk/whoisterms,
36 | which includes restrictions on: (A) use of the data for advertising, or its
37 | repackaging, recompilation, redistribution or reuse (B) obscuring, removing
38 | or hiding any or all of this notice and (C) exceeding query rate or volume
39 | limits. The data is provided on an 'as-is' basis and may lag behind the
40 | register. Access may be withdrawn or restricted at any time.
--------------------------------------------------------------------------------
/tests/fixtures/google.coop.txt:
--------------------------------------------------------------------------------
1 | Connecting to COOP.whois-servers.net...
2 |
3 | The queried object does not exist: previous registration D59629278-CNIC was purged on 2018-11-15T16:49:26.0Z (DOMAIN NOT FOUND)
4 |
5 | >>> Last update of WHOIS database: 2020-10-10T21:28:57.0Z <<<
6 |
7 | For more information on Whois status codes, please visit https://icann.org/epp
8 |
9 | >>> IMPORTANT INFORMATION ABOUT THE DEPLOYMENT OF RDAP: please visit
10 | https://www.centralnic.com/support/rdap <<<
11 |
12 | The Whois and RDAP services are provided by CentralNic, and contain
13 | information pertaining to Internet domain names registered by our
14 | our customers. By using this service you are agreeing (1) not to use any
15 | information presented here for any purpose other than determining
16 | ownership of domain names, (2) not to store or reproduce this data in
17 | any way, (3) not to use any high-volume, automated, electronic processes
18 | to obtain data from this service. Abuse of this service is monitored and
19 | actions in contravention of these terms will result in being permanently
20 | blacklisted. All data is (c) CentralNic Ltd (https://www.centralnic.com)
21 |
22 | Access to the Whois and RDAP services is rate limited. For more
23 | information, visit https://registrar-console.centralnic.com/pub/whois_guidance.
24 |
25 | Connecting to ject does not exist: previous registration D59629278-CNIC was purged on 2018-11-15T16:49:26.0Z (DOMAIN NOT FOUND)...
26 |
--------------------------------------------------------------------------------
/tests/fixtures/google.cz.txt:
--------------------------------------------------------------------------------
1 | Connecting to CZ.whois-servers.net...
2 |
3 | domain: google.cz
4 | registrant: MM1171195
5 | admin-c: MM1171195
6 | nsset: MM1543911
7 | registrar: REG-MARKMONITOR
8 | registered: 21.07.2000 15:21:00
9 | changed: 23.04.2018 20:24:01
10 | expire: 22.07.2021
11 |
12 | contact: MM1171195
13 | org: Google LLC
14 | name: Domain Administrator
15 | address: 1600 Amphitheatre Parkway
16 | address: Mountain View
17 | address: 94043
18 | address: CA
19 | address: US
20 | registrar: REG-MARKMONITOR
21 | created: 02.03.2018 18:52:05
22 | changed: 15.05.2018 21:32:00
23 |
24 | nsset: MM1543911
25 | nserver: ns2.google.com
26 | nserver: ns4.google.com
27 | nserver: ns3.google.com
28 | nserver: ns1.google.com
29 | tech-c: MM193020
30 | registrar: REG-MARKMONITOR
31 | created: 18.05.2011 23:27:16
32 |
33 | contact: MM193020
34 | org: MarkMonitor Inc.
35 | name: Domain Provisioning
36 | address: 3540 East Longwing Lane
37 | address: Suite 300
38 | address: Meridian
39 | address: 83646
40 | address: ID
41 | address: US
42 | registrar: REG-MARKMONITOR
43 | created: 03.02.2011 18:24:34
44 | changed: 11.07.2019 18:54:44
45 |
46 |
47 |
48 | Connecting to google.cz...
49 |
--------------------------------------------------------------------------------
/tests/fixtures/google.de.txt:
--------------------------------------------------------------------------------
1 | % Restricted rights.
2 | %
3 | % Terms and Conditions of Use
4 | %
5 | % The above data may only be used within the scope of technical or
6 | % administrative necessities of Internet operation or to remedy legal
7 | % problems.
8 | % The use for other purposes, in particular for advertising, is not permitted.
9 | %
10 | % The DENIC whois service on port 43 doesn't disclose any information concerning
11 | % the domain holder, general request and abuse contact.
12 | % This information can be obtained through use of our web-based whois service
13 | % available at the DENIC website:
14 | % http://www.denic.de/en/domains/whois-service/web-whois.html
15 | %
16 | %
17 |
18 | Domain: google.de
19 | Nserver: ns1.google.com
20 | Nserver: ns2.google.com
21 | Nserver: ns3.google.com
22 | Nserver: ns4.google.com
23 | Status: connect
24 | Changed: 2018-03-12T21:44:25+01:00
--------------------------------------------------------------------------------
/tests/fixtures/google.dk.txt:
--------------------------------------------------------------------------------
1 | # Hello 109.238.54.211. Your session has been logged.
2 | #
3 | # Copyright (c) 2002 - 2018 by DK Hostmaster A/S
4 | #
5 | # Version: 2.0.2
6 | #
7 | # The data in the DK Whois database is provided by DK Hostmaster A/S
8 | # for information purposes only, and to assist persons in obtaining
9 | # information about or related to a domain name registration record.
10 | # We do not guarantee its accuracy. We will reserve the right to remove
11 | # access for entities abusing the data, without notice.
12 | #
13 | # Any use of this material to target advertising or similar activities
14 | # are explicitly forbidden and will be prosecuted. DK Hostmaster A/S
15 | # requests to be notified of any such activities or suspicions thereof.
16 |
17 | Domain: google.dk
18 | DNS: google.dk
19 | Registered: 1999-01-10
20 | Expires: 2019-03-31
21 | Registration period: 1 year
22 | VID: no
23 | Dnssec: Unsigned delegation
24 | Status: Active
25 |
26 | Registrant
27 | Handle: GI656-DK
28 | Name: Google Inc
29 | Address: 1600 Amphitheatre Parkway
30 | Postalcode: CA 94043
31 | City: Mountain View
32 | Country: US
33 | Phone: +16502530000
34 |
35 | Administrator
36 | Handle: GI657-DK
37 | Name: Google Inc
38 | Attention: Domain Administrator
39 | Address: 1600 Amphitheatre Parkway
40 | Postalcode: 94043
41 | City: Mountain View, CA
42 | Country: US
43 | Phone: +16502530000
44 |
45 | Nameservers
46 | Hostname: ns1.google.com
47 | Handle: GI644-DK
48 | Hostname: ns2.google.com
49 | Handle: GI644-DK
50 | Hostname: ns3.google.com
51 | Handle: GI644-DK
52 | Hostname: ns4.google.com
53 | Handle: GI644-DK
54 |
55 |
--------------------------------------------------------------------------------
/tests/fixtures/google.eu.txt:
--------------------------------------------------------------------------------
1 | Connecting to EU.whois-servers.net...
2 |
3 | NOT DISCLOSED!
4 | Visit www.eurid.eu for webbased WHOIS.
5 |
6 | On-site(s):
7 | NOT DISCLOSED!
8 | Visit www.eurid.eu for webbased WHOIS.
9 |
10 | Registrar:
11 | Name: MarkMonitor Inc.
12 | Website: https://www.markmonitor.com/
13 |
14 | Name servers:
15 | ns3.google.com
16 | ns4.google.com
17 | ns1.google.com
18 | ns2.google.com
19 |
20 | Please visit www.eurid.eu for more info.
21 |
22 | Connecting to SCLOSED!...
23 |
--------------------------------------------------------------------------------
/tests/fixtures/google.fi.txt:
--------------------------------------------------------------------------------
1 | Connecting to FI.whois-servers.net...
2 |
3 |
4 | domain.............: google.fi
5 | status.............: Registered
6 | created............: 30.6.2006 00:00:00
7 | expires............: 4.7.2021 10:15:55
8 | available..........: 4.8.2021 10:15:55
9 | modified...........: 2.6.2020
10 | holder transfer....: 20.11.2018
11 | RegistryLock.......: locked
12 |
13 | Nameservers
14 |
15 | nserver............: ns3.google.com [OK]
16 | nserver............: ns4.google.com [OK]
17 | nserver............: ns1.google.com [OK]
18 | nserver............: ns2.google.com [OK]
19 |
20 | DNSSEC
21 |
22 | dnssec.............: no
23 |
24 | Holder
25 |
26 | name...............: Google LLC
27 | register number....: 3582691
28 | address............: 1600 Amphitheatre Parkway
29 | address............: 94043
30 | address............: Mountain View
31 | country............: United States of America
32 | phone..............: +1.6502530000
33 | holder email.......:
34 |
35 | Registrar
36 |
37 | registrar..........: MarkMonitor Inc.
38 | www................: www.markmonitor.com
39 |
40 | Tech
41 |
42 | name...............: Google LLC
43 | email..............: ccops@markmonitor.com
44 |
45 | >>> Last update of WHOIS database: 11.10.2020 1:00:28 (EET) <<<
46 |
47 |
48 | Copyright (c) Finnish Transport and Communications Agency Traficom
49 |
50 |
51 | Connecting to .......: google.fi...
52 |
--------------------------------------------------------------------------------
/tests/fixtures/google.hu.txt:
--------------------------------------------------------------------------------
1 | % Whois server 3.0 serving the hu ccTLD
2 |
3 | domain: google.hu
4 | record created: 2000-03-25 23:20:39
5 | Tovabbi adatokert ld.:
6 | http://www.domain.hu/domain/domainsearch/
7 | For further data see:
8 | http://www.domain.hu/domain/English/domainsearch/
9 |
--------------------------------------------------------------------------------
/tests/fixtures/google.ie.txt:
--------------------------------------------------------------------------------
1 | Connecting to IE.whois-servers.net...
2 |
3 |
4 | % Rights restricted by copyright; http://iedr.ie/index.php/mnudomregs/mnudnssearch/96
5 | % Do not remove this notice
6 |
7 | Domain: google.ie
8 | Domain Holder: Google, Inc
9 | Admin-c: AAV410-IEDR
10 | Tech-c: CCA7-IEDR
11 | Account Name: Markmonitor Inc
12 | Registrar Abuse Contact: abusecomplaints@markmonitor.com
13 | Registration Date: 21-March-2002
14 | Renewal Date: 21-March-2021
15 | Holder-type: Billable
16 | Locked status: YES
17 | Renewal status: Active
18 | In-zone: 1
19 | Nserver: ns1.google.com
20 | Nserver: ns2.google.com
21 | Nserver: ns3.google.com
22 |
23 |
24 | % Important Notice
25 | % If you believe that information published on this page is incorrect, or should not be published, please contact your Registrar, or the IEDR Registration Services Department who will advise you further.
26 | % You can also contact your Registrar or the IEDR if your domain holder name isn’t showing and you would like it to be published.
27 | % Our contact information is available at https://www.iedr.ie/contact-us/
28 |
29 |
30 | Connecting to ricted by copyright; http://iedr.ie/index.php/mnudomregs/mnudnssearch/96...
31 |
--------------------------------------------------------------------------------
/tests/fixtures/google.no.txt:
--------------------------------------------------------------------------------
1 | % By looking up information in the domain registration directory
2 | % service, you confirm that you accept the terms and conditions of the
3 | % service:
4 | % https://www.norid.no/en/domeneoppslag/vilkar/
5 | %
6 | % UNINETT Norid AS holds the copyright to the lookup service, content,
7 | % layout and the underlying collections of information used in the
8 | % service (cf. the Act on Intellectual Property of May 2, 1961, No.
9 | % 2). Any commercial % use of information from the service, including
10 | % targeted marketing, is prohibited. Using information from the domain
11 | % registration directory service in % violation of the terms and
12 | % conditions may result in legal prosecution.
13 | %
14 | % The whois service at port 43 is intended to contribute to resolving
15 | % technical problems where individual domains threaten the
16 | % functionality, security and stability of other domains or the
17 | % internet as an infrastructure. It does not give any information
18 | % about who the holder of a domain is. To find information about a
19 | % domain holder, please visit our website:
20 | % https://www.norid.no/en/domeneoppslag/
21 |
22 | Domain Information
23 |
24 | NORID Handle...............: GOO371D-NORID
25 | Domain Name................: google.no
26 | Registrar Handle...........: REG466-NORID
27 | Tech-c Handle..............: GL1R-NORID
28 | Name Server Handle.........: NSGO26H-NORID
29 | Name Server Handle.........: NSGO27H-NORID
30 | Name Server Handle.........: NSGO28H-NORID
31 | Name Server Handle.........: NSGO29H-NORID
32 |
33 | Additional information:
34 | Created: 2001-02-26
35 | Last updated: 2018-06-22
36 |
37 |
--------------------------------------------------------------------------------
/tests/fixtures/google.ru.txt:
--------------------------------------------------------------------------------
1 | Connecting to RU.whois-servers.net...
2 |
3 | domain: GOOGLE.RU
4 | nserver: ns1.google.com.
5 | nserver: ns2.google.com.
6 | nserver: ns3.google.com.
7 | nserver: ns4.google.com.
8 | state: REGISTERED, DELEGATED, VERIFIED
9 | org: Google LLC
10 | registrar: RU-CENTER-RU
11 | admin-contact: https://www.nic.ru/whois
12 | created: 2004-03-03T21:00:00Z
13 | paid-till: 2021-03-04T21:00:00Z
14 | free-date: 2021-04-05
15 | source: TCI
16 |
17 | Last updated on 2020-10-07T20:01:32Z
18 |
19 |
20 | Connecting to GOOGLE.RU...
21 |
--------------------------------------------------------------------------------
/tests/fixtures/google.se.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 1997- IIS (The Internet Foundation In Sweden).
2 | # All rights reserved.
3 | # The information obtained through searches, or otherwise, is protected
4 | # by the Swedish Copyright Act (1960:729) and international conventions.
5 | # It is also subject to database protection according to the Swedish
6 | # Copyright Act.
7 | # Any use of this material to target advertising or
8 | # similar activities is forbidden and will be prosecuted.
9 | # If any of the information below is transferred to a third
10 | # party, it must be done in its entirety. This server must
11 | # not be used as a backend for a search engine.
12 | # Result of search for registered domain names under
13 | # the .se top level domain.
14 | # This whois printout is printed with UTF-8 encoding.
15 | #
16 | state: active
17 | domain: google.se
18 | holder: mmr8008-53808
19 | admin-c: -
20 | tech-c: -
21 | billing-c: -
22 | created: 2003-08-27
23 | modified: 2017-09-18
24 | expires: 2018-10-20
25 | transferred: 2009-03-06
26 | nserver: ns1.google.com
27 | nserver: ns2.google.com
28 | nserver: ns3.google.com
29 | nserver: ns4.google.com
30 | dnssec: unsigned delegation
31 | status: serverUpdateProhibited
32 | status: serverDeleteProhibited
33 | status: serverTransferProhibited
34 | registrar: MarkMonitor Inc
35 |
--------------------------------------------------------------------------------
/tests/fixtures/humblebundle.de.txt:
--------------------------------------------------------------------------------
1 | % Restricted rights.
2 | %
3 | % Terms and Conditions of Use
4 | %
5 | % The above data may only be used within the scope of technical or
6 | % administrative necessities of Internet operation or to remedy legal
7 | % problems.
8 | % The use for other purposes, in particular for advertising, is not permitted.
9 | %
10 | % The DENIC whois service on port 43 doesn't disclose any information concerning
11 | % the domain holder, general request and abuse contact.
12 | % This information can be obtained through use of our web-based whois service
13 | % available at the DENIC website:
14 | % http://www.denic.de/en/domains/whois-service/web-whois.html
15 | %
16 | %
17 |
18 | Domain: humblebundle.de
19 | Nserver: ns1.domainers.de
20 | Nserver: ns2.domainers.de
21 | Nserver: ns3.domainers.de
22 | Nserver: ns4.domainers.de
23 | Status: connect
24 | Changed: 2016-05-20T12:55:32+02:00
--------------------------------------------------------------------------------
/tests/fixtures/isoc.am.txt:
--------------------------------------------------------------------------------
1 | %
2 | %AM TLD whois server #1
3 | % Please see 'whois -h whois.amnic.net help' for usage.
4 | %
5 |
6 | Domain name: isoc.am
7 | Registrar: amnic
8 | Status: active
9 |
10 | Registrant:
11 | Internet Society NGO
12 | 17/3 A. Khachatryan str.
13 | Yerevan, 0012
14 | AM
15 |
16 | Administrative contact:
17 | Igor Mkrtumyan
18 | Internet Society NGO
19 | 17/3 A. Khachatryan str.
20 | Yerevan, 0012
21 | AM
22 | imkrtumyan@isoc.am
23 | +374-60-272217
24 |
25 | Technical contact:
26 | Misak Khachatryan
27 | Internet Society NGO
28 | 17/3 A. Khachatryan str.
29 | Yerevan, 0012
30 | AM
31 | misak@amnic.net
32 | +374 93 199840
33 |
34 | DNS servers:
35 | ns10.isoc.am - 173.249.9.197
36 | ns-ext.aic.net
37 |
38 | Registered: 2000-01-01
39 | Last modified: 2018-03-27
40 |
--------------------------------------------------------------------------------
/tests/fixtures/nic.ae.txt:
--------------------------------------------------------------------------------
1 | Domain Name: nic.ae
2 | Registrar ID: Etisalat
3 | Registrar Name: Etisalat
4 | Status: clientDeleteProhibited
5 | Status: clientUpdateProhibited
6 |
7 | Registrant Contact ID: CX364448T
8 | Registrant Contact Name: Emirates Telecommunications Corporation - Etisalat
9 | Registrant Contact Email: Visit whois.aeda.ae for Web based WhoIs
10 | Registrant Contact Organisation: Emirates Telecommunications Corporation - Etisalat
11 |
12 | Tech Contact ID: CX364450T
13 | Tech Contact Name: Emirates Telecommunications Corporation - Etisalat
14 | Tech Contact Email: Visit whois.aeda.ae for Web based WhoIs
15 | Tech Contact Organisation: Emirates Telecommunications Corporation - Etisalat
16 |
17 | Name Server: dxbans2.ecompany.ae
18 | Name Server: auhans1.ecompany.ae
19 | Name Server: dxbans1.ecompany.ae
20 | Name Server: auhans2.ecompany.ae
--------------------------------------------------------------------------------
/tests/fixtures/nic.aero.txt:
--------------------------------------------------------------------------------
1 | Domain Name: NIC.AERO
2 | Registry Domain ID: D108300000000000122-AGRS
3 | Registrar WHOIS Server:
4 | Registrar URL:
5 | Updated Date: 2020-03-08T22:20:34Z
6 | Creation Date: 2002-03-08T13:26:29Z
7 | Registry Expiry Date: 2021-03-08T13:26:29Z
8 | Registrar Registration Expiration Date:
9 | Registrar: SITA
10 | Registrar IANA ID: 9999
11 | Registrar Abuse Contact Email:
12 | Registrar Abuse Contact Phone:
13 | Reseller:
14 | Domain Status: ok https://icann.org/epp#ok
15 | Registrant Organization: SITA SC
16 | Registrant State/Province: GE
17 | Registrant Country: CH
18 | Name Server: A0.NIC.AERO
19 | Name Server: B0.NIC.AERO
20 | Name Server: C0.NIC.AERO
21 | Name Server: A2.NIC.AERO
22 | Name Server: B2.NIC.AERO
23 | DNSSEC: unsigned
24 | URL of the ICANN Whois Inaccuracy Complaint Form https://www.icann.org/wicf/)
25 | >>> Last update of WHOIS database: 2020-06-07T14:27:09Z <<<
26 |
27 | For more information on Whois status codes, please visit https://icann.org/epp
28 |
29 | Access to WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the registry database. The data in this record is provided by The Registry Operator for informational purposes only, and accuracy is not guaranteed. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Registry Operator reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
30 |
31 | The Registrar of Record identified in this output may have an RDDS service that can be queried for additional information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
--------------------------------------------------------------------------------
/tests/fixtures/nic.ag.txt:
--------------------------------------------------------------------------------
1 | Domain Name: NIC.AG
2 | Registry Domain ID: D105800000000052707-AGRS
3 | Registrar WHOIS Server:
4 | Registrar URL:
5 | Updated Date: 2019-03-02T05:36:24Z
6 | Creation Date: 1998-05-02T04:00:00Z
7 | Registry Expiry Date: 2025-05-02T04:00:00Z
8 | Registrar Registration Expiration Date:
9 | Registrar: NicAg Registrar
10 | Registrar IANA ID: 119
11 | Registrar Abuse Contact Email:
12 | Registrar Abuse Contact Phone:
13 | Reseller:
14 | Domain Status: ok https://icann.org/epp#ok
15 | Registrant Organization: Nic AG LLC
16 | Registrant State/Province: FL
17 | Registrant Country: US
18 | Name Server: NS1.NIC.AG
19 | Name Server: NS11.NIC.AG
20 | DNSSEC: unsigned
21 |
22 | >>> Last update of WHOIS database: 2020-06-08T14:31:04Z <<<
23 |
24 | For more information on Whois status codes, please visit https://icann.org/epp
25 |
26 | Access to WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the registry database. The data in this record is provided by The Registry Operator for informational purposes only, and accuracy is not guaranteed. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Registry Operator reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
27 |
28 | The Registrar of Record identified in this output may have an RDDS service that can be queried for additional information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
--------------------------------------------------------------------------------
/tests/fixtures/nic.asia.txt:
--------------------------------------------------------------------------------
1 | Domain Name: NIC.ASIA
2 | Registry Domain ID: D425500000333335753-AGRS
3 | Registrar WHOIS Server:
4 | Registrar URL:
5 | Updated Date: 2020-04-28T21:15:48Z
6 | Creation Date: 2020-02-28T17:10:40Z
7 | Registry Expiry Date: 2021-02-28T17:10:40Z
8 | Registrar Registration Expiration Date:
9 | Registrar: dotASIA
10 | Registrar IANA ID: 119
11 | Registrar Abuse Contact Email:
12 | Registrar Abuse Contact Phone:
13 | Reseller:
14 | Domain Status: ok https://icann.org/epp#ok
15 | Registrant Organization: DotAsia Organisation Limited
16 | Registrant State/Province: Other
17 | Registrant Country: HK
18 | Name Server: D0.DIG.AFILIAS-NST.INFO
19 | Name Server: C0.DIG.AFILIAS-NST.INFO
20 | Name Server: B0.DIG.AFILIAS-NST.INFO
21 | Name Server: A0.DIG.AFILIAS-NST.INFO
22 | DNSSEC: unsigned
23 | URL of the ICANN Whois Inaccuracy Complaint Form https://www.icann.org/wicf/)
24 | >>> Last update of WHOIS database: 2020-06-07T14:27:10Z <<<
25 |
26 | For more information on Whois status codes, please visit https://icann.org/epp
27 |
28 | Access to WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the registry database. The data in this record is provided by The Registry Operator for informational purposes only, and accuracy is not guaranteed. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Registry Operator reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy.
29 |
30 | The Registrar of Record identified in this output may have an RDDS service that can be queried for additional information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
--------------------------------------------------------------------------------
/tests/fixtures/nic.hu.txt:
--------------------------------------------------------------------------------
1 | % Whois server 3.0 serving the hu ccTLD
2 |
3 | domain: nic.hu
4 | record created: 1996-06-27 13:36:21
5 | Tovabbi adatokert ld.:
6 | http://www.domain.hu/domain/domainsearch/
7 | For further data see:
8 | http://www.domain.hu/domain/English/domainsearch/
9 |
--------------------------------------------------------------------------------
/tests/fixtures/norid.no.txt:
--------------------------------------------------------------------------------
1 | Connecting to NO.whois-servers.net...
2 |
3 | % By looking up information in the domain registration directory
4 | % service, you confirm that you accept the terms and conditions of the
5 | % service:
6 | % https://www.norid.no/en/domeneoppslag/vilkar/
7 | %
8 | % UNINETT Norid AS holds the copyright to the lookup service, content,
9 | % layout and the underlying collections of information used in the
10 | % service (cf. the Act on Intellectual Property of May 2, 1961, No.
11 | % 2). Any commercial % use of information from the service, including
12 | % targeted marketing, is prohibited. Using information from the domain
13 | % registration directory service in % violation of the terms and
14 | % conditions may result in legal prosecution.
15 | %
16 | % The whois service at port 43 is intended to contribute to resolving
17 | % technical problems where individual domains threaten the
18 | % functionality, security and stability of other domains or the
19 | % internet as an infrastructure. It does not give any information
20 | % about who the holder of a domain is. To find information about a
21 | % domain holder, please visit our website:
22 | % https://www.norid.no/en/domeneoppslag/
23 |
24 | Domain Information
25 |
26 | NORID Handle...............: NOR18456D-NORID
27 | Domain Name................: norid.no
28 | Registrar Handle...........: REG2-NORID
29 | Tech-c Handle..............: UH9R-NORID
30 | Name Server Handle.........: NAC2H-NORID
31 | Name Server Handle.........: NN14H-NORID
32 | Name Server Handle.........: NSUN1239H-NORID
33 | Name Server Handle.........: SERV41H-NORID
34 | DNSSEC.....................: Signed
35 | DS Key Tag 1...........: 50212
36 | Algorithm 1...........: 8
37 | Digest Type 1...........: 2
38 | Digest 1...........: 555cd4da5203e4d74a1c94e3433502ec9d8d4a09a28e6a85f47ade020137f423
39 |
40 | Additional information:
41 | Created: 1999-11-15
42 | Last updated: 2018-05-24
43 |
44 |
45 | Connecting to p information in the domain registration directory...
46 |
--------------------------------------------------------------------------------
/tests/fixtures/olsns.co.uk.txt:
--------------------------------------------------------------------------------
1 |
2 | Domain name:
3 | olsns.co.uk
4 |
5 | Data validation:
6 | Nominet was able to match the registrant's name and address against a 3rd party data source on 10-Dec-2012
7 |
8 | Registrar:
9 | Entorno Digital S.A [Tag = ENTORNO-ES]
10 | URL: http://www.entorno.com
11 |
12 | Relevant dates:
13 | Registered on: 21-Feb-2001
14 | Expiry date: 21-Feb-2021
15 | Last updated: 18-Feb-2020
16 |
17 | Registration status:
18 | Registered until expiry date.
19 |
20 | Name servers:
21 | a.ns.olsns.co.uk 82.98.130.187
22 | b.ns.olsns.co.uk 82.98.170.158
23 |
24 | WHOIS lookup made at 18:48:29 07-Jun-2020
25 |
26 | --
27 | This WHOIS information is provided for free by Nominet UK the central registry
28 | for .uk domain names. This information and the .uk WHOIS are:
29 |
30 | Copyright Nominet UK 1996 - 2020.
31 |
32 | You may not access the .uk WHOIS or use any data from it except as permitted
33 | by the terms of use available in full at https://www.nominet.uk/whoisterms,
34 | which includes restrictions on: (A) use of the data for advertising, or its
35 | repackaging, recompilation, redistribution or reuse (B) obscuring, removing
36 | or hiding any or all of this notice and (C) exceeding query rate or volume
37 | limits. The data is provided on an 'as-is' basis and may lag behind the
38 | register. Access may be withdrawn or restricted at any time.
--------------------------------------------------------------------------------
/tests/fixtures/registro.br.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsmitty12/phpWhois/2f88d8f02e95b3d959e564b476ecdf791135896d/tests/fixtures/registro.br.txt
--------------------------------------------------------------------------------
/tests/fixtures/samoanic.ws.txt:
--------------------------------------------------------------------------------
1 | Domain Name: SAMOANIC.WS
2 | Domain ID: D865CD2902FC835CE040010AAB015FFF
3 | WHOIS Server:
4 | Registrar URL: http://samoanic.ws/whois.dhtml
5 | Updated Date: 2020-03-09T09:41:00Z
6 | Creation Date: 2000-03-09T19:11:00Z
7 | Registrar Registration Expiration Date: 2021-03-09T19:11:00Z
8 | Registrar: Computer Services Limited
9 | Registrar IANA ID:
10 | Registrar Abuse Contact Email: helpdesk@samoa.ws
11 | Registrar Abuse Contact Phone: 68520926
12 | Domain Status: ok
13 | Registry Registrant ID:
14 | Registrant Name: CSL
15 | Registrant Organization: Computer Services Limited
16 | Registrant Street: 701 Palomar Airport Rd. 3rd floor
17 | Registrant City: Carlsbad
18 | Registrant State/Province: CA
19 | Registrant Postal Code: 92009
20 | Registrant Country: US
21 | Registrant Phone: +1.68520926
22 | Registrant Phone Ext:
23 | Registrant Fax:
24 | Registrant Fax Ext:
25 | Registrant Email: domains@samoa.ws
26 | Registry Admin ID:
27 | Admin Name: CSL
28 | Admin Organization: Computer Services Limited
29 | Admin Street: 701 Palomar Airport Rd. 3rd floor
30 | Admin City: Carlsbad
31 | Admin State/Province: CA
32 | Admin Postal Code: 92009
33 | Admin Country: US
34 | Admin Phone: +1.68520926
35 | Admin Phone Ext:
36 | Admin Fax:
37 | Admin Fax Ext:
38 | Admin Email: domains@samoa.ws
39 | Registry Tech ID:
40 | Tech Name: CSL
41 | Tech Organization: Computer Services Limited
42 | Tech Street: 701 Palomar Airport Rd. 3rd floor
43 | Tech City: Carlsbad
44 | Tech State/Province: CA
45 | Tech Postal Code: 92009
46 | Tech Country: US
47 | Tech Phone: +1.68520926
48 | Tech Phone Ext:
49 | Tech Fax:
50 | Tech Fax Ext:
51 | Tech Email: domains@samoa.ws
52 | Name Server: ns2.ncsdi.ws.
53 | Name Server: ns3.ncsdi.ws.
54 | Name Server: ns4.ncsdi.ws.
55 | Name Server: ns5.ncsdi.ws.
56 | DNSSEC: unsigned
57 | URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
58 | >>> Last update of WHOIS database: 2020-06-07T14:27:27Z <<<
59 |
60 | For more information on Whois status codes, please visit https://icann.org/epp
61 |
--------------------------------------------------------------------------------
/tests/fixtures/usp.ac.fj.txt:
--------------------------------------------------------------------------------
1 |
2 | The Data in the USP WHOIS database is provided by USP for
3 | information purposes, and to assist persons in obtaining
4 | information about or related to a domain name registration record.
5 | USP does not guarantee its accuracy. By submitting a
6 | WHOIS query, you agree that you will use this Data only for lawful
7 | purposes and that, under no circumstances will you use this Data to:
8 | (1) allow, enable, or otherwise support the transmission of mass
9 | unsolicited, commercial advertising or solicitations via e-mail
10 | (spam); or (2) enable high volume, automated, electronic processes
11 | that apply to USP (or its systems). USP reserves the right to modify
12 | these terms at any time. By submitting this query, you agree to abide
13 | by this policy.
14 |
15 | Domain name: usp.ac.fj Status: Active
16 | Expires: 31st December 2020
17 |
18 | Registrant:
19 | The University of the South Pacific
20 | IT Services
21 |
22 | Domain servers:
23 |
24 | MANU.USP.AC.FJ 144.120.8.10
25 | TERI.USP.AC.FJ 144.120.8.1
26 |
--------------------------------------------------------------------------------
/tests/fixtures/vibrantdigitalfuture.uk.txt:
--------------------------------------------------------------------------------
1 |
2 | Domain name:
3 | vibrantdigitalfuture.uk
4 |
5 | Registrant:
6 | Nominet UK
7 |
8 | Registrant type:
9 | UK Limited Company, (Company number: 3203859)
10 |
11 | Registrant's address:
12 | Minerva House
13 | Edmund Halley Road
14 | Oxford Science Park
15 | Oxford
16 | Oxon
17 | OX4 4DQ
18 | United Kingdom
19 |
20 | Data validation:
21 | Nominet was able to match the registrant's name and address against a 3rd party data source on 26-Oct-2018
22 |
23 | Registrar:
24 | No registrar listed. This domain is registered directly with Nominet.
25 |
26 | Relevant dates:
27 | Registered on: 27-Jul-2016
28 | Last updated: 30-Oct-2019
29 |
30 | Registration status:
31 | No registration status listed.
32 |
33 | Name servers:
34 | curt.ns.cloudflare.com
35 | dee.ns.cloudflare.com
36 |
37 | WHOIS lookup made at 18:48:30 07-Jun-2020
38 |
39 | --
40 | This WHOIS information is provided for free by Nominet UK the central registry
41 | for .uk domain names. This information and the .uk WHOIS are:
42 |
43 | Copyright Nominet UK 1996 - 2020.
44 |
45 | You may not access the .uk WHOIS or use any data from it except as permitted
46 | by the terms of use available in full at https://www.nominet.uk/whoisterms,
47 | which includes restrictions on: (A) use of the data for advertising, or its
48 | repackaging, recompilation, redistribution or reuse (B) obscuring, removing
49 | or hiding any or all of this notice and (C) exceeding query rate or volume
50 | limits. The data is provided on an 'as-is' basis and may lag behind the
51 | register. Access may be withdrawn or restricted at any time.
--------------------------------------------------------------------------------
/tests/fixtures/рег.рф.txt:
--------------------------------------------------------------------------------
1 | % By submitting a query to RIPN's Whois Service
2 | % you agree to abide by the following terms of use:
3 | % http://www.ripn.net/about/servpol.html#3.2 (in Russian)
4 | % http://www.ripn.net/about/en/servpol.html#3.2 (in English).
5 |
6 | domain: XN--C1AD6A.XN--P1AI
7 | nserver: ns1.reg.ru.
8 | nserver: ns2.reg.ru.
9 | state: REGISTERED, DELEGATED, VERIFIED
10 | org: Domain name registrar REG.RU
11 | registrar: REGRU-RF
12 | admin-contact: http://www.reg.ru/whois/admin_contact
13 | created: 2009-12-11T11:53:43Z
14 | paid-till: 2020-12-11T11:53:43Z
15 | free-date: 2021-01-11
16 | source: TCI
17 |
18 | Last updated on 2020-10-07T20:06:32Z
19 |
--------------------------------------------------------------------------------
/tests/ip_handlerTest.php:
--------------------------------------------------------------------------------
1 | lookup('216.58.209.195');
15 | self::assertTrue(is_array($result));
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/testsuite.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jsmitty12/phpWhois/2f88d8f02e95b3d959e564b476ecdf791135896d/testsuite.txt
--------------------------------------------------------------------------------