https://github.com/yiisoft/network-utilities
Network related utilities
https://github.com/yiisoft/network-utilities
hacktoberfest ip mask network yii3
Last synced: over 1 year ago
JSON representation
Network related utilities
- Host: GitHub
- URL: https://github.com/yiisoft/network-utilities
- Owner: yiisoft
- License: bsd-3-clause
- Created: 2019-10-24T12:57:34.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-02T14:07:39.000Z (almost 2 years ago)
- Last Synced: 2024-10-29T14:36:08.558Z (over 1 year ago)
- Topics: hacktoberfest, ip, mask, network, yii3
- Language: PHP
- Homepage: https://www.yiiframework.com/
- Size: 129 KB
- Stars: 27
- Watchers: 18
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
Yii Network Utilities
[](https://packagist.org/packages/yiisoft/network-utilities)
[](https://packagist.org/packages/yiisoft/network-utilities)
[](https://github.com/yiisoft/network-utilities/actions/workflows/build.yml)
[](https://codecov.io/gh/yiisoft/network-utilities)
[](https://dashboard.stryker-mutator.io/reports/github.com/yiisoft/network-utilities/master)
[](https://github.com/yiisoft/network-utilities/actions?query=workflow%3A%22static+analysis%22)
[](https://shepherd.dev/github/yiisoft/network-utilities)
The package contains various network utilities useful for:
- getting info about IP address;
- checking if IP is in a certain range;
- expanding IPv6;
- converting IP to bits representation;
- checking DNS record availability.
## Requirements
- PHP 7.4 or higher.
## Installation
The package could be installed with [Composer](https://getcomposer.org):
```shell
composer require yiisoft/network-utilities
```
## General usage
### `IpHelper`
```php
use Yiisoft\NetworkUtilities\IpHelper;
// Check IP version.
$version = IpHelper::getIpVersion('192.168.1.1');
if ($version === IpHelper::IPV4) {
// ...
}
// Check if IP is in a certain range.
if (!IpHelper::inRange('192.168.1.21/32', '192.168.1.0/24')) {
throw new \RuntimeException('Access denied!');
}
// Expand IP v6.
echo IpHelper::expandIPv6('2001:db8::1');
// Convert IP to bits representation.
echo IpHelper::ip2bin('192.168.1.1');
// Get bits from CIDR Notation.
echo IpHelper::getCidrBits('192.168.1.21/32');
```
### `DnsHelper`
```php
use Yiisoft\NetworkUtilities\DnsHelper;
// Check DNS record availability.
if (!DnsHelper::existsA('yiiframework.com')) {
// Record not found.
}
```
### `IpRanges`
```php
use Yiisoft\NetworkUtilities\IpRanges;
$ipRanges = new IpRanges(
[
'10.0.1.0/24',
'2001:db0:1:2::/64',
IpRanges::LOCALHOST,
'myNetworkEu',
'!' . IpRanges::ANY,
],
[
'myNetworkEu' => ['1.2.3.4/10', '5.6.7.8'],
],
);
$ipRanges->isAllowed('10.0.1.28/28'); // true
$ipRanges->isAllowed('1.2.3.4'); // true
$ipRanges->isAllowed('192.168.0.1'); // false
```
## Documentation
- [Internals](docs/internals.md)
If you need help or have a question, the [Yii Forum](https://forum.yiiframework.com/c/yii-3-0/63) is a good place for that.
You may also check out other [Yii Community Resources](https://www.yiiframework.com/community).
## License
The Yii Network Utilities is free software. It is released under the terms of the BSD License.
Please see [`LICENSE`](./LICENSE.md) for more information.
Maintained by [Yii Software](https://www.yiiframework.com/).
## Support the project
[](https://opencollective.com/yiisoft)
## Follow updates
[](https://www.yiiframework.com/)
[](https://twitter.com/yiiframework)
[](https://t.me/yii3en)
[](https://www.facebook.com/groups/yiitalk)
[](https://yiiframework.com/go/slack)