Ağ İşlevleri

İçindekiler

  • checkdnsrr — Belirtilen bir konak adı veya IP adresi için DNS sorgusu yapar
  • closelog — Sistem günlükçüsü bağlantısını kapatır
  • dns_check_record — checkdnsrr işlevinin takma adıdır
  • dns_get_mx — getmxrr işlevinin takma adıdır
  • dns_get_record — Belirtilen konak adı ile ilgili DNS Özkaynak Kayıtlarını getirir
  • fsockopen — Bir internet veya Unix alan soketi bağlantısı açar
  • gethostbyaddr — Belirtilen IP adresine çözümlenen konak ismini döndürür
  • gethostbyname — Belirtilen konak adına ait IPv4 adresini döndürür
  • gethostbynamel — Belirtilen konak adına ait IPv4 adreslerini döndürür
  • gethostname — Konak ismini döndürür
  • getmxrr — Belirtilen konak adı ile ilgili MX kaydını döndürür
  • getprotobyname — Protokol ismine karşılık düşen protokol numarasını verir
  • getprotobynumber — Protokol numarasına karşılık düşen protokol ismini verir
  • getservbyname — Belirtilen ağ hizmeti ve protokolle ilişkili port numarası ile döner
  • getservbyport — Belirtilen port ve protokolle ilgili ağ hizmeti ile döner
  • header — Ham bir HTTP başlığı gönderir
  • header_register_callback — Bir başlık işlevi çağırır
  • header_remove — Evvelce tanımlanmış başlıkları siler
  • headers_list — Gönderilmiş (veya gönderilmeye hazır) yanıt başlıklarının listesiyle döner
  • headers_sent — Başlıklar gönderilmiş mi, gönderilmişse nerede gönderilmiş diye bakar
  • http_clear_last_response_headers — Clears the stored HTTP response headers
  • http_get_last_response_headers — Retrieve last HTTP response headers
  • http_response_code — HTTP yanıt kodunu tanımlar veya siler
  • inet_ntop — Bir IP adresinin in_addr gösterimini insan okuyabilir gösterime dönüştürür
  • inet_pton — İnsan okuyabilir bir IP adresini in_addr gösterimine dönüştürür
  • ip2long — Noktalı IP adresi gösterimini içeren bir dizgeyi uzun tamsayıya dönüştürür
  • long2ip — Bir uzun tamsayılı IPv4 adresini noktalı gösterimi içeren bir dizgeye dönüştürür
  • net_get_interfaces — Get network interfaces
  • openlog — Sistem günlükçüsüne erişim için bağlantı açar
  • pfsockopen — Kalıcı bir internet veya Unix alan soketi bağlantısı açar
  • request_parse_body — Read and parse the request body and return the result
  • setcookie — Bir çerez gönderir
  • setrawcookie — Bir çerezi değerini URL kodlamasından geçirmeden gönderir
  • socket_get_status — Takma Adı: stream_get_meta_data
  • socket_set_blocking — Takma Adı: stream_set_blocking
  • socket_set_timeout — Takma Adı: stream_set_timeout
  • syslog — Bir sistem günlüğü iletisi üretir
add a note

User Contributed Notes 5 notes

up
37
claudiu at cnixs dot com
17 years ago
A simple and very fast function to check against CIDR.

Your previous examples are too complicated and involves a lot of functions call.

Here it is (only with arithmetic operators and call only to ip2long () and split() ):
<?php
function ipCIDRCheck ($IP, $CIDR) {
list (
$net, $mask) = split ("/", $CIDR);

$ip_net = ip2long ($net);
$ip_mask = ~((1 << (32 - $mask)) - 1);

$ip_ip = ip2long ($IP);

$ip_ip_net = $ip_ip & $ip_mask;

return (
$ip_ip_net == $ip_net);
}
?>
call example: <?php echo ipCheck ("192.168.1.23", "192.168.1.0/24"); ?>
up
10
Anton Avramov - lukav at lukav dot com
7 years ago
An improved version of claudiu at cnixs dot com not using split and working with the following:
ip: 192.168.101.123, CIRD: 192.168.101.144/24

<?php
function ipCIDRCheck ($IP, $CIDR) {
list (
$net, $mask) = explode ('/', $CIDR);

$ip_net = ip2long ($net);
$ip_mask = ~((1 << (32 - $mask)) - 1);

$ip_ip = ip2long ($IP);

return ((
$ip_ip & $ip_mask) == ($ip_net & $ip_mask));
}
?>
up
4
Anonymous
8 years ago
improved version of philippe-at-cyberabuse.org's answer:

<?php
function cidrconv($net) {
$start = strtok($net,"/");
$n = 3 - substr_count($net, ".");
if (
$n > 0)
{
for (
$i = $n;$i > 0; $i--)
$start .= ".0";
}
$bits1 = str_pad(decbin(ip2long($start)), 32, "0", STR_PAD_LEFT);
$net = (1 << (32 - substr(strstr($net, "/"), 1))) - 1;
$bits2 = str_pad(decbin($net), 32, "0", STR_PAD_LEFT);
$final = "";
for (
$i = 0; $i < 32; $i++)
{
if (
$bits1[$i] == $bits2[$i]) $final .= $bits1[$i];
if (
$bits1[$i] == 1 and $bits2[$i] == 0) $final .= $bits1[$i];
if (
$bits1[$i] == 0 and $bits2[$i] == 1) $final .= $bits2[$i];
}
return array(
$start, long2ip(bindec($final)));
}
?>
up
2
David GASTALDIN
17 years ago
Here a IP-Range to CIDRs function that I wrote for the purpose of filling my Postfix client.cidr with ripe-ncc data to block spamming from useless countries. Strcmp functions are meant to work around the silly PHP string comparison which inevitably tries compare strings as numbers when possible. I'll make no comment about that fact ... bit I have to bite my tong hard :

function PlageVersCIDRs($ip_min, $ip_max) {
$cidrs = array();
$ip_min_bin = sprintf('%032b', $ip_min);
$ip_max_bin = sprintf('%032b', $ip_max);
$ip_cour_bin = $ip_min_bin;
while (strcmp($ip_cour_bin, $ip_max_bin) <= 0) {
$lng_reseau = 32;
$ip_reseau_bin = $ip_cour_bin;
while (($ip_cour_bin[$lng_reseau - 1] == '0') && (strcmp(substr_replace($ip_reseau_bin, '1', $lng_reseau - 1, 1), $ip_max_bin) <= 0)) {
$ip_reseau_bin[$lng_reseau - 1] = '1';
$lng_reseau--;
}
$cidrs[] = long2ip(bindec($ip_cour_bin)).'/'.$lng_reseau;
$ip_cour_bin = sprintf('%032b', bindec($ip_reseau_bin) + 1);
}
return $cidrs;
}
up
2
philippe-at-cyberabuse.org
23 years ago
PHP miss CIDR functions.

This one will convert a CIDR like this:
0.0.0.0/16 -> 0.0.0.0 - 0.0.255.255
127.0/16 -> 127.0.0.0 - 127.0.255.255
etc...

function cidrconv($net) {
$start=strtok($net,"/");
$n=3-substr_count($net, ".");
if ($n>0) { for ($i=$n;$i>0;$i--) $start.=".0"; }
$bits1=str_pad(decbin(ip2long($start)),32,"0","STR_PAD_LEFT");
$net=pow(2,(32-substr(strstr($net,"/"),1)))-1;
$bits2=str_pad(decbin($net),32,"0","STR_PAD_LEFT");
for ($i=0;$i<32;$i++) {
if ($bits1[$i]==$bits2[$i]) $final.=$bits1[$i];
if ($bits1[$i]==1 and $bits2[$i]==0) $final.=$bits1[$i];
if ($bits1[$i]==0 and $bits2[$i]==1) $final.=$bits2[$i];
}
return $start." - ".long2ip(bindec($final));
}
To Top