Network tools Library for PHP with native Yggdrasil / IPv6 support
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yggverse 1e5b42d407 add timeout attribute 2 months ago
src add timeout attribute 2 months ago
.gitignore initial commit 6 months ago
LICENSE Initial commit 6 months ago
README.md add timeout attribute 2 months ago
composer.json update project name 6 months ago

README.md

net-php

Network Library for PHP with native Yggdrasil support

Install

composer require yggverse/net

Usage

Socket

Check socket is open

var_dump(
    \Yggverse\Net\Socket::isOpen('yo.index', 80)
);

Check host valid

var_dump(
    \Yggverse\Net\Socket::isHost('yo.index')
);

Check port valid

var_dump(
    \Yggverse\Net\Socket::isPort(80)
);

Dig

Resolve records

var_dump(
    \Yggverse\Net\Dig::records('yo.index', ['A', 'AAAA'], &$result = [], &$error = [], $provider = null, $timeout = 5)
);

Check hostname valid

var_dump(
    \Yggverse\Net\Dig::isHostName('yo.index')
);

Check record valid

var_dump(
    \Yggverse\Net\Dig::isRecord('A')
);

Check record value valid

var_dump(
    \Yggverse\Net\Dig::isRecordValue('A', '127.0.0.1')
);

Address

Includes methods to work with network addresses.

Base address methods

Different operations with address parts:

  • scheme
  • user
  • password
  • host
  • protocol
  • path
  • query
  • fragment

Address conversion from relative to absolute format

Document root

$base = new \Yggverse\Net\Address(
    'http://yo.ygg/a1/b1/c1'
);

$address = new \Yggverse\Net\Address(
    '/a2'
);

var_dump(
    $address->getAbsolute(
        $base
    ) // return http://yo.ygg/a2
);

Current folder

$base = new \Yggverse\Net\Address(
    'http://yo.ygg/a1/b1/c1'
);

$address = new \Yggverse\Net\Address(
    'c2'
);

var_dump(
    $address->getAbsolute(
        $base
    ) // return http://yo.ygg/a1/b1/c2
);

Ending slash

$base = new \Yggverse\Net\Address(
    'http://yo.ygg/a1/b1/c1/'
);

$address = new \Yggverse\Net\Address(
    '../../b2/c2'
);

var_dump(
    $address->getAbsolute(
        $base
    ) // return http://yo.ygg/a1/b2/c2
);

All options

$base = new \Yggverse\Net\Address(
    'http://user:password@yo.ygg/a1/b1/c1?attribute=value#anchor'
);

$address = new \Yggverse\Net\Address(
    '../../a2/b2?attribute2=value2#anchor2'
);

var_dump(
    $address->getAbsolute(
        $base
    ) // return http://user:password@yo.ygg/a2/b2?attribute2=value2#anchor2
);

Integrations