PHPackages                             yggverse/net - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. yggverse/net

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

yggverse/net
============

1.8.1(1y ago)066[1 issues](https://github.com/YGGverse/net-php/issues)MITPHP

Since Dec 16Pushed 1y ago2 watchersCompare

[ Source](https://github.com/YGGverse/net-php)[ Packagist](https://packagist.org/packages/yggverse/net)[ RSS](/packages/yggverse-net/feed)WikiDiscussions main Synced today

READMEChangelog (10)DependenciesVersions (15)Used By (0)

net-php
=======

[](#net-php)

Network Library for PHP with native Yggdrasil support

Install
-------

[](#install)

`composer require yggverse/net`

Usage
-----

[](#usage)

### Socket

[](#socket)

#### Check socket is open

[](#check-socket-is-open)

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

#### Check host valid

[](#check-host-valid)

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

#### Check port valid

[](#check-port-valid)

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

### Dig

[](#dig)

#### Resolve records

[](#resolve-records)

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

#### Check hostname valid

[](#check-hostname-valid)

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

#### Check record valid

[](#check-record-valid)

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

#### Check record value valid

[](#check-record-value-valid)

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

### Resolve

[](#resolve)

#### Init resolver

[](#init-resolver)

```
$resolve = new \Yggverse\Net\Resolve(
    [
        'A',
        'AAAA'
    ],
    [
        '1.1.1.1',
        '8.8.8.8'
    ],
    // ..
);
```

#### Get resolved URL string

[](#get-resolved-url-string)

```
$resolved = $resolve->url(
    'https://en.wikipedia.org/wiki/Domain_Name_System'
    // next arguments contain debug variables and new address object
);

if ($resolved)
{
    var_dump(
        $resolved // https://185.15.59.224/wiki/Domain_Name_System
    );
}
```

#### Resolve Address object

[](#resolve-address-object)

```
$resolved = $resolve->address(
    new \Yggverse\Net\Address(
        'https://en.wikipedia.org/wiki/Domain_Name_System'
    )
);

if ($resolved)
{
    var_dump(
        $resolved->get() // https://185.15.59.224/wiki/Domain_Name_System
    );

    var_dump(
        $resolved->getHost() // 185.15.59.224
    );
}
```

### Address

[](#address)

Includes methods to work with network addresses.

#### Base address methods

[](#base-address-methods)

Different operations with address parts:

- `scheme`
- `user`
- `password`
- `host`
- `protocol`
- `path`
- `query`
- `fragment`

#### Address conversion from relative to absolute format

[](#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
);
```

### Valid

[](#valid)

Network entities validation

**Supported methods**

- `Valid::ip`
- `Valid::ip4`
- `Valid::ip6`
- `Valid::domainHostName`

Integrations
------------

[](#integrations)

- [gemini-dl](https://github.com/YGGverse/gemini-dl) - CLI batch downloader for Gemini protocol
- [web-api](https://github.com/YGGverse/web-api) - Network API with native Yggdrasil/IPv6 support
- [Yo!](https://github.com/YGGverse/Yo) - Crawler and search engine for different networks
- [Yoda](https://github.com/YGGverse/Yoda) - Experimental PHP-GTK browser for Gemini protocol

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 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 ~16 days

Recently: every ~24 days

Total

14

Last Release

721d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/108541346?v=4)[d47081](/maintainers/d47081)[@d47081](https://github.com/d47081)

---

Top Contributors

[![d47081](https://avatars.githubusercontent.com/u/108541346?v=4)](https://github.com/d47081 "d47081 (1 commits)")

---

Tags

addresscomposerconverterdigdnsdns-phpdns-php-librarydns-resolver-apiipv4ipv6net-phpnetworknetwork-apipathphp-digphp-resolverresolveruriurlurn

### Embed Badge

![Health badge](/badges/yggverse-net/health.svg)

```
[![Health](https://phpackages.com/badges/yggverse-net/health.svg)](https://phpackages.com/packages/yggverse-net)
```

###  Alternatives

[tig/postnl-magento2

TIG Magento 2 PostNL extension

59570.5k5](/packages/tig-postnl-magento2)[arcanedev/laravel-notes

Provides the ability to add notes to your Eloquent models in Laravel.

4850.5k](/packages/arcanedev-laravel-notes)[kohkimakimoto/background-process

A minimum library to run background processes asynchronously.

351.4k](/packages/kohkimakimoto-background-process)

PHPackages © 2026

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