{"id":18479438,"url":"https://github.com/yggverse/net-php","last_synced_at":"2026-04-22T15:32:46.839Z","repository":{"id":212694942,"uuid":"731963316","full_name":"YGGverse/net-php","owner":"YGGverse","description":"Network tools Library for PHP with native Yggdrasil / IPv6 support","archived":false,"fork":false,"pushed_at":"2024-07-11T07:10:37.000Z","size":19,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-12T17:56:11.726Z","etag":null,"topics":["address","composer","converter","dig","dns","dns-php","dns-php-library","dns-resolver-api","ipv4","ipv6","net-php","network","network-api","path","php-dig","php-resolver","resolver","uri","url","urn"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YGGverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-15T09:51:40.000Z","updated_at":"2024-07-11T07:10:21.000Z","dependencies_parsed_at":"2023-12-16T12:10:10.785Z","dependency_job_id":"977d81ad-3ddc-43c7-ac9b-03445abb8c20","html_url":"https://github.com/YGGverse/net-php","commit_stats":null,"previous_names":["yggverse/dns-php","yggverse/net-php"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/YGGverse/net-php","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Fnet-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Fnet-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Fnet-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Fnet-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YGGverse","download_url":"https://codeload.github.com/YGGverse/net-php/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YGGverse%2Fnet-php/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32143613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T14:31:12.705Z","status":"ssl_error","status_checked_at":"2026-04-22T14:27:43.037Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["address","composer","converter","dig","dns","dns-php","dns-php-library","dns-resolver-api","ipv4","ipv6","net-php","network","network-api","path","php-dig","php-resolver","resolver","uri","url","urn"],"created_at":"2024-11-06T12:14:53.672Z","updated_at":"2026-04-22T15:32:46.808Z","avatar_url":"https://github.com/YGGverse.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# net-php\n\nNetwork Library for PHP with native Yggdrasil support\n\n## Install\n\n`composer require yggverse/net`\n\n## Usage\n\n### Socket\n\n#### Check socket is open\n\n``` php\nvar_dump(\n    \\Yggverse\\Net\\Socket::isOpen('yo.index', 80)\n);\n```\n\n#### Check host valid\n\n``` php\nvar_dump(\n    \\Yggverse\\Net\\Socket::isHost('yo.index')\n);\n```\n\n#### Check port valid\n\n``` php\nvar_dump(\n    \\Yggverse\\Net\\Socket::isPort(80)\n);\n```\n\n### Dig\n\n#### Resolve records\n\n``` php\nvar_dump(\n    \\Yggverse\\Net\\Dig::records('yo.index', ['A', 'AAAA'], \u0026$result = [], \u0026$error = [], $provider = null, $timeout = 5)\n);\n```\n\n#### Check hostname valid\n\n``` php\nvar_dump(\n    \\Yggverse\\Net\\Dig::isHostName('yo.index')\n);\n```\n\n#### Check record valid\n\n``` php\nvar_dump(\n    \\Yggverse\\Net\\Dig::isRecord('A')\n);\n```\n\n#### Check record value valid\n\n``` php\nvar_dump(\n    \\Yggverse\\Net\\Dig::isRecordValue('A', '127.0.0.1')\n);\n```\n\n### Resolve\n\n#### Init resolver\n\n``` php\n$resolve = new \\Yggverse\\Net\\Resolve(\n    [\n        'A',\n        'AAAA'\n    ],\n    [\n        '1.1.1.1',\n        '8.8.8.8'\n    ],\n    // ..\n);\n```\n\n#### Get resolved URL string\n\n``` php\n$resolved = $resolve-\u003eurl(\n    'https://en.wikipedia.org/wiki/Domain_Name_System'\n    // next arguments contain debug variables and new address object\n);\n\nif ($resolved)\n{\n    var_dump(\n        $resolved // https://185.15.59.224/wiki/Domain_Name_System\n    );\n}\n```\n\n#### Resolve Address object\n\n``` php\n$resolved = $resolve-\u003eaddress(\n    new \\Yggverse\\Net\\Address(\n        'https://en.wikipedia.org/wiki/Domain_Name_System'\n    )\n);\n\nif ($resolved)\n{\n    var_dump(\n        $resolved-\u003eget() // https://185.15.59.224/wiki/Domain_Name_System\n    );\n\n    var_dump(\n        $resolved-\u003egetHost() // 185.15.59.224\n    );\n}\n```\n\n### Address\n\nIncludes methods to work with network addresses.\n\n#### Base address methods\n\nDifferent operations with address parts:\n\n* `scheme`\n* `user`\n* `password`\n* `host`\n* `protocol`\n* `path`\n* `query`\n* `fragment`\n\n#### Address conversion from relative to absolute format\n\n**Document root**\n\n``` php\n$base = new \\Yggverse\\Net\\Address(\n    'http://yo.ygg/a1/b1/c1'\n);\n\n$address = new \\Yggverse\\Net\\Address(\n    '/a2'\n);\n\nvar_dump(\n    $address-\u003egetAbsolute(\n        $base\n    ) // return http://yo.ygg/a2\n);\n```\n\n**Current folder**\n\n``` php\n$base = new \\Yggverse\\Net\\Address(\n    'http://yo.ygg/a1/b1/c1'\n);\n\n$address = new \\Yggverse\\Net\\Address(\n    'c2'\n);\n\nvar_dump(\n    $address-\u003egetAbsolute(\n        $base\n    ) // return http://yo.ygg/a1/b1/c2\n);\n```\n\n**Ending slash**\n\n``` php\n$base = new \\Yggverse\\Net\\Address(\n    'http://yo.ygg/a1/b1/c1/'\n);\n\n$address = new \\Yggverse\\Net\\Address(\n    '../../b2/c2'\n);\n\nvar_dump(\n    $address-\u003egetAbsolute(\n        $base\n    ) // return http://yo.ygg/a1/b2/c2\n);\n```\n\n**All options**\n\n``` php\n$base = new \\Yggverse\\Net\\Address(\n    'http://user:password@yo.ygg/a1/b1/c1?attribute=value#anchor'\n);\n\n$address = new \\Yggverse\\Net\\Address(\n    '../../a2/b2?attribute2=value2#anchor2'\n);\n\nvar_dump(\n    $address-\u003egetAbsolute(\n        $base\n    ) // return http://user:password@yo.ygg/a2/b2?attribute2=value2#anchor2\n);\n```\n\n### Valid\n\nNetwork entities validation\n\n**Supported methods**\n\n* `Valid::ip`\n* `Valid::ip4`\n* `Valid::ip6`\n* `Valid::domainHostName`\n\n## Integrations\n\n* [gemini-dl](https://github.com/YGGverse/gemini-dl) - CLI batch downloader for Gemini protocol\n* [web-api](https://github.com/YGGverse/web-api) - Network API with native Yggdrasil/IPv6 support\n* [Yo!](https://github.com/YGGverse/Yo) - Crawler and search engine for different networks\n* [Yoda](https://github.com/YGGverse/Yoda) - Experimental PHP-GTK browser for Gemini protocol\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyggverse%2Fnet-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyggverse%2Fnet-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyggverse%2Fnet-php/lists"}