outsanity/ip-analysis

用于分析IP地址的库

v3.1.0 2024-05-02 02:40 UTC

This package is auto-updated.

Last update: 2024-09-19 04:09:38 UTC


README

分析IP地址以帮助程序识别全球可达或不可达的IP,并获取有关IP的详细信息。

安装

如果您使用composer,请运行

composer require outsanity/ip-analysis

用法

<?php

require 'vendor/autoload.php';

use Outsanity\IpAnalysis\IpAnalysis;

$ip = new IpAnalysis('127.0.0.1');
echo 'documentation: ' . ($ip->isDocumentation()  ? 'yes' : 'no') . "\n"; // 192.0.2.65, 2001:db8:1:3::2
echo 'global: ' .        ($ip->isGlobal()         ? 'yes' : 'no') . "\n"; // 8.8.8.8, 2001:4860:4860::8888
echo 'loopback: ' .      ($ip->isLoopback()       ? 'yes' : 'no') . "\n"; // 127.0.0.1, ::1
echo 'multicast: ' .     ($ip->isMulticast()      ? 'yes' : 'no') . "\n"; // 224.0.1.1, ff00::101
echo 'private: ' .       ($ip->isPrivateNetwork() ? 'yes' : 'no') . "\n"; // 10.0.0.1, 192.168.0.1, fd11:1111:1111::1
echo 'subnet: ' .        ($ip->isLocalNetwork()   ? 'yes' : 'no') . "\n"; // 169.254.0.1, fe80::6450:6a14:93ba:de09

预期输出

documentation: no
global: no
loopback: yes
multicast: no
private: no
subnet: no

构建支持

第二个包,IP Analysis Helper,将IANA .csv 规则文件转换为 SpecialAddressBlock 实体。这些实体位于 Outsanity\IpAnalysis\SpecialAddressBlock\Factory::$allRaw

感谢

规则来自IANA IPv4特殊地址注册表IANA IPv6特殊地址注册表

额外帮助来自维基百科保留IP地址页面和RIPE IPv6参考卡