PHPackages                             shapito27/whois-parser - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. shapito27/whois-parser

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

shapito27/whois-parser
======================

Tool to parse whois response

1.10.3(4y ago)41.1k1MITPHPPHP &gt;=7.1

Since Oct 29Pushed 4y ago3 watchersCompare

[ Source](https://github.com/shapito27/whois)[ Packagist](https://packagist.org/packages/shapito27/whois-parser)[ RSS](/packages/shapito27-whois-parser/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (3)Dependencies (3)Versions (33)Used By (0)

Whois parser
============

[](#whois-parser)

Tool helps parsing **whois response**.

You got response as plain text(for example by [Ubuntu package whois](https://packages.ubuntu.com/en/groovy/net/whois) or any other tool):

```

    Domain name:
        auto.uk

    Data validation:
        Nominet was able to match the registrant's name and address against a 3rd party data source on 14-Dec-2017

    Registrar:
        eNom LLC [Tag = ENOM]
        URL: http://www.enom.com

    Relevant dates:
        Registered on: 23-Jun-2016
        Expiry date:  23-Jun-2021
        Last updated:  25-May-2020

    Registration status:
        Registered until expiry date.

    Name servers:
        a.ns.keyweb.org
        b.ns.keyweb.org
        c.ns.keyweb.de

    WHOIS lookup made at 05:43:54 29-Apr-2021

--
This WHOIS information is provided for free by Nominet UK the central registry
for .uk domain names. This information and the .uk WHOIS are:

    Copyright Nominet UK 1996 - 2021.

```

This package analyzes it and return object with structured data.

Install
-------

[](#install)

`composer require shapito27/whois-parser`

Example
-------

[](#example)

([more detailed example](https://github.com/shapito27/whois/blob/main/tests/WhoisParserTest.php))

lets imagine you use shell command `whois facebook.com` and want to parse it.

**Input**: domain name and `$whoisText` is response of shell command

```
//set domain name and output of its whois data
$parser = new \Shapito27\Whois\WhoisParser('facebook.com', $whoisText);

//run parsing whois data
$whoisParserResult = $parser->run();

//check if any error
if (!empty($whoisParserResult->getErrorMessage())) {
    die($whoisParserResult->getErrorMessage());
}

//get and output whois object
var_dump($whoisParserResult->getWhois());

```

**Output**:

```
Shapito27\Whois\Whois::__set_state(array(
  'status' => 1,
  'creationDate' => '1997-03-29 05:00:00',
  'updateDate' => '2020-03-10 18:53:59',
  'expirationDate' => '2028-03-30 04:00:00',
  'nameServers' =>
 array (
   0 => 'a.ns.facebook.com',
   1 => 'b.ns.facebook.com',
   2 => 'c.ns.facebook.com',
   3 => 'd.ns.facebook.com',
 ),
  'registrar' =>
 Shapito27\Whois\Registrar::__set_state(array(
    'id' => '3237',
    'name' => 'RegistrarSafe, LLC',
    'abuseContactEmail' => 'abusecomplaints@registrarsafe.com',
    'abuseContactPhone' => '+1.6503087004',
 )),
  'registryDomainId' => '2320948_DOMAIN_COM-VRSN',
  'errorMessage' => NULL,
))

```

**Parse inside loop**

To avoid parsing config on each iterration define parser outside the loop.

```
$domains = [
'facebook.com' => 'facebook whois text',
'google.com' => 'google whois text'
];

//set domain name and output of its whois data
$parser = new \Shapito27\Whois\WhoisParser();

foreach($domains as $domain => $whoisText) {
   $parser->setDomainName($domain);
   //set formatter each iteration
   $parser->detectFormat();
   $parser->setWhoisText($whoisText);

   //run parsing whois data
   $whoisParserResult = $parser->run();

   //check if any error
   if (!empty($whoisParserResult->getErrorMessage())) {
        die($whoisParserResult->getErrorMessage());
    }

   //get and output whois object
   var_dump($whoisParserResult->getWhois());
   //display errors
   var_dump($whoisParserResult->getErrorMessage());
}

```

### Projects use this lib

[](#projects-use-this-lib)

[bestdrop.io](https://bestdrop.io)

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~20 days

Total

32

Last Release

1754d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a1b885c74c86bd11940f364e4cde197cfcb3baa4daef79c4cd025a953c03b9cb?d=identicon)[shapito27](/maintainers/shapito27)

---

Top Contributors

[![shapito27](https://avatars.githubusercontent.com/u/9530168?v=4)](https://github.com/shapito27 "shapito27 (53 commits)")

---

Tags

phpwhoisparserwhois

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/shapito27-whois-parser/health.svg)

```
[![Health](https://phpackages.com/badges/shapito27-whois-parser/health.svg)](https://phpackages.com/packages/shapito27-whois-parser)
```

###  Alternatives

[nikic/php-parser

A PHP parser written in PHP

17.4k936.5M2.3k](/packages/nikic-php-parser)[doctrine/lexer

PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.

11.2k942.7M149](/packages/doctrine-lexer)[erusev/parsedown

Parser for Markdown.

15.0k155.2M839](/packages/erusev-parsedown)[league/commonmark

Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)

3.0k426.1M936](/packages/league-commonmark)[masterminds/html5

An HTML5 parser and serializer.

1.8k260.4M292](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k204.2M72](/packages/sabberworm-php-css-parser)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
