|
@@ -76,8 +76,8 @@ Chapter 1. Admin Guide
|
|
|
|
|
|
1. Overview
|
|
|
|
|
|
- This module offers operations for handling IP addresses, both IPv4 and
|
|
|
- IPv6.
|
|
|
+ The IPops module offers operations for handling IP addresses, both IPv4
|
|
|
+ and IPv6.
|
|
|
|
|
|
IPv6 is defined in RFC 2460. The same IPv6 address can be represented
|
|
|
by different ASCII strings, so binary comparison is required. For
|
|
@@ -125,7 +125,7 @@ Chapter 1. Admin Guide
|
|
|
4.9. is_ip_rfc1918 (ip)
|
|
|
4.10. is_in_subnet (ip, subnet)
|
|
|
|
|
|
-4.1. is_ip (ip)
|
|
|
+4.1. is_ip (ip)
|
|
|
|
|
|
Returns TRUE if the argument is a valid IPv4, IPv6 or IPv6 reference.
|
|
|
FALSE otherwise.
|
|
@@ -137,14 +137,14 @@ Chapter 1. Admin Guide
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.1. is_ip usage
|
|
|
+ Example 1.1. is_ip usage
|
|
|
...
|
|
|
if (is_ip($rd)) {
|
|
|
xlog("L_INFO", "RURI domain is an IP address (not a host name/domain)\n");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.2. is_pure_ip (ip)
|
|
|
+4.2. is_pure_ip (ip)
|
|
|
|
|
|
Returns TRUE if the argument is a valid IPv4 or IPv6. FALSE otherwise.
|
|
|
|
|
@@ -154,7 +154,7 @@ if (is_ip($rd)) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.2. is_pure_ip usage
|
|
|
+ Example 1.2. is_pure_ip usage
|
|
|
...
|
|
|
$var(ip) = "::1";
|
|
|
if (is_pure_ip($var(ip))) {
|
|
@@ -162,7 +162,7 @@ if (is_pure_ip($var(ip))) {
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.3. is_ipv4 (ip)
|
|
|
+4.3. is_ipv4 (ip)
|
|
|
|
|
|
Returns TRUE if the argument is a valid IPv4. FALSE otherwise.
|
|
|
|
|
@@ -172,14 +172,14 @@ if (is_pure_ip($var(ip))) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.3. is_ipv4 usage
|
|
|
+ Example 1.3. is_ipv4 usage
|
|
|
...
|
|
|
if (is_ipv4("1.2.3.4")) {
|
|
|
xlog("L_INFO", "it's IPv4\n");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.4. is_ipv6 (ip)
|
|
|
+4.4. is_ipv6 (ip)
|
|
|
|
|
|
Returns TRUE if the argument is a valid IPv6. FALSE otherwise.
|
|
|
|
|
@@ -189,14 +189,14 @@ if (is_ipv4("1.2.3.4")) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.4. is_ipv6 usage
|
|
|
+ Example 1.4. is_ipv6 usage
|
|
|
...
|
|
|
if (is_ipv6("1080:0:0:0:8:800:200C:417A")) {
|
|
|
xlog("L_INFO", "it's IPv6\n");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.5. is_ipv6_reference (ip)
|
|
|
+4.5. is_ipv6_reference (ip)
|
|
|
|
|
|
Returns TRUE if the argument is a valid IPv6 reference. FALSE
|
|
|
otherwise.
|
|
@@ -207,14 +207,14 @@ if (is_ipv6("1080:0:0:0:8:800:200C:417A")) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.5. is_ipv6_reference usage
|
|
|
+ Example 1.5. is_ipv6_reference usage
|
|
|
...
|
|
|
if (is_ipv6_reference("[1080:0:0:0:8:800:200C:417A]")) {
|
|
|
xlog("L_INFO", "it's IPv6 reference\n");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.6. ip_type (ip)
|
|
|
+4.6. ip_type (ip)
|
|
|
|
|
|
Returns the type of the given IP.
|
|
|
|
|
@@ -230,7 +230,7 @@ if (is_ipv6_reference("[1080:0:0:0:8:800:200C:417A]")) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.6. ip_type usage
|
|
|
+ Example 1.6. ip_type usage
|
|
|
...
|
|
|
ip_type($var(myip));
|
|
|
switch($rc) {
|
|
@@ -249,7 +249,7 @@ switch($rc) {
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.7. compare_ips (ip1, ip2)
|
|
|
+4.7. compare_ips (ip1, ip2)
|
|
|
|
|
|
Returns TRUE if both IP addresses are the same. FALSE otherwise. This
|
|
|
function also allows comparing an IPv6 address against an IPv6
|
|
@@ -263,7 +263,7 @@ switch($rc) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.7. compare_ips usage
|
|
|
+ Example 1.7. compare_ips usage
|
|
|
...
|
|
|
if (compare_ips("1080:0000:0000:0000:0008:0800:200C:417A", "[1080::8:800:200C:41
|
|
|
7A]")) {
|
|
@@ -271,7 +271,7 @@ if (compare_ips("1080:0000:0000:0000:0008:0800:200C:417A", "[1080::8:800:200C:41
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.8. compare_pure_ips (ip1, ip2)
|
|
|
+4.8. compare_pure_ips (ip1, ip2)
|
|
|
|
|
|
Returns TRUE if both IP's are the same. FALSE otherwise. This function
|
|
|
does NOT allow comparing an IPv6 against an IPv6 reference.
|
|
@@ -285,14 +285,14 @@ if (compare_ips("1080:0000:0000:0000:0008:0800:200C:417A", "[1080::8:800:200C:41
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.8. compare_pure_ips usage
|
|
|
+ Example 1.8. compare_pure_ips usage
|
|
|
...
|
|
|
if (compare_pure_ips($si, "1080::8:800:200C:417A")) {
|
|
|
xlog("L_INFO", "both are the same IP\n");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.9. is_ip_rfc1918 (ip)
|
|
|
+4.9. is_ip_rfc1918 (ip)
|
|
|
|
|
|
Returns TRUE if the argument is a private IPv4 according to RFC 1918.
|
|
|
FALSE otherwise.
|
|
@@ -303,14 +303,14 @@ if (compare_pure_ips($si, "1080::8:800:200C:417A")) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.9. is_ip_rfc1918 usage
|
|
|
+ Example 1.9. is_ip_rfc1918 usage
|
|
|
...
|
|
|
if (is_ip_rfc1918("10.0.123.123")) {
|
|
|
xlog("L_INFO", "it's a private IPv4\n");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.10. is_in_subnet (ip, subnet)
|
|
|
+4.10. is_in_subnet (ip, subnet)
|
|
|
|
|
|
Returns TRUE if the first argument is an IP address within the (CIDR
|
|
|
notation) subnet in the second argument. FALSE otherwise.
|
|
@@ -323,7 +323,7 @@ if (is_ip_rfc1918("10.0.123.123")) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.10. is_in_subnet usage
|
|
|
+ Example 1.10. is_in_subnet usage
|
|
|
...
|
|
|
if (is_in_subnet("10.0.123.123", "10.0.123.1/24")) {
|
|
|
xlog("L_INFO", "it's in the subnet\n");
|