PHP code example of dormilich / apnic

1. Go to this page and download the library: Download dormilich/apnic library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

dormilich / apnic example snippets


use Dormilich\APNIC\Utilities\WhoisParser;

$reader = new WhoisParser;

// of course you can use any CLI processor you like
$whois = `whois '192.186.2.0 - 192.186.2.8' -h whois.apnic.net`; # using GNU whois here

try {
  if ($net = $reader->parse($whois)) {
    // do something with the Inetnum object ...
  }
}
catch (Exception $e) {
  // ... or show any problems you got while parsing
  echo $e;
}

use Dormilich\APNIC\Utilities\WhoisParser;
use Dormilich\APNIC\RPSL\Inetnum;

$reader = new WhoisParser;

$whois = `whois '192.186.2.0 - 192.186.2.8' -h whois.apnic.net -rxB`;

try {
  // unlike the first example, $net will always be an RPSL object
  $net = $reader->parse($whois, new Inetnum(null));

  if (!$net->isValid()) {
    // something is left out
  }

  // do something with the Inetnum object ...
}
catch (Exception $e) {
  echo $e;
}

use Dormilich\APNIC\Utilities\WhoisParser;

$reader = new WhoisParser;

$whois = `whois '192.186.2.0 - 192.186.2.8' -h whois.apnic.net -rxB`;

try {
  $data = $reader->parseAll($whois);
  
  $net = $data['192.186.2.0 - 192.186.2.8'];
  $admin1 = $data[ $net['admin-c'][0] ];
  
  // ...
}
catch (Exception $e) {
  echo $e;
}


use Dormilich\APNIC\RPSL\Person;

$person = new Person;

// set a value to an attribute
$person['person'] = 'John Doe';
$person->set('source', 'APNIC');

// add values to a multiple attribute
$person
  ->add('address', 'infinity drive 1')
  ->add('address', 'anytown')
;

// get a value from an attribute
echo $person['person']; // John Doe
echo $person->get('source'); // APNIC
$address = $person->get('address'); // ['infinity drive 1', 'anytown']

// delete values
unset($person['source']);
var_dump( $person->get('source') ); // NULL

// you can even pass RPSL objects to appropriate attributes
$maint = ... // get that object from whois
$obj['mnt-by'] = $maint;

// common attributes that contain references validate any passed RPSL object
// e.g. this throws an exception since tech contacts can only be Person or Role handles
$obj->add('tech-c', $maint);

use Dormilich\APNIC\Utilities\WhoisParser;

$reader = new WhoisParser;

$whois = `whois JD12-AP -h whois.apnic.net -rB`;

try {
  if ($john = $reader->parse($whois)) {
    $john
      ->add('phone', '+1 234 567 8901')
      ->add('e-mail', '[email protected]')
    ;
    $body = $john . 'password: ' . $my_apnic_password;
    // please use a proper email client!
    mail('[email protected]', $john->getHandle(), $body, ...);
  }
}
catch (Exception $e) {
  echo $e;
}