Giter VIP home page Giter VIP logo

net-php's Introduction

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')
);

Resolve

Init resolver

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

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

$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

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:[email protected]/a1/b1/c1?attribute=value#anchor'
);

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

var_dump(
    $address->getAbsolute(
        $base
    ) // return http://user:[email protected]/a2/b2?attribute2=value2#anchor2
);

Valid

Network entities validation

Supported methods

  • Valid::ip
  • Valid::ip4
  • Valid::ip6
  • Valid::domainHostName

Integrations

  • gemini-dl - CLI batch downloader for Gemini protocol
  • web-api - Network API with native Yggdrasil/IPv6 support
  • Yo! - Crawler and search engine for different networks
  • Yoda - Experimental PHP-GTK browser for Gemini protocol

net-php's People

Contributors

d47081 avatar

Watchers

 avatar  avatar  avatar

net-php's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.