文字

getprotobynumber

(PHP 4, PHP 5)

getprotobynumberGet protocol name associated with protocol number

说明

string getprotobynumber ( int $number )

getprotobynumber() returns the protocol name associated with protocol number as per /etc/protocols.

参数

number

The protocol number.

返回值

Returns the protocol name as a string, 或者在失败时返回 FALSE .

参见

  • getprotobyname() - Get protocol number associated with protocol name

用户评论:

[#1] i at tiankonguse dot com [2013-11-27 23:37:17]

getprotobynumber()
=====================
getprotobynumber() gets the protocol name for the given protocol number on the local system.

 If the protocol number is not recognized,the function returns FALSE.

The given code snippet gives the list of protocols along with their protocol numbers

=====================
code

<?php
$format 
"number <---> protocol\n<br />";
$format "%6s <---> %s\n<br />";
for(
$number 0$number 255$number ++) {
    if (
getprotobynumber $number ))
        
        
printf $format$number"getprotobynumber $number ) );
}
?>


=====================
OUTPUT:
0 <---> ip 
1 <---> icmp 
2 <---> igmp 
3 <---> ggp 
4 <---> ipencap 
5 <---> st 
6 <---> tcp 
8 <---> egp 
9 <---> igp 
12 <---> pup 
17 <---> udp 
20 <---> hmp 
22 <---> xns-idp 
27 <---> rdp 
29 <---> iso-tp4 
33 <---> dccp 
36 <---> xtp 
37 <---> ddp 
38 <---> idpr-cmtp 
41 <---> ipv6 
43 <---> ipv6-route 
44 <---> ipv6-frag 
45 <---> idrp 
46 <---> rsvp 
47 <---> gre 
50 <---> esp 
51 <---> ah 
57 <---> skip 
58 <---> ipv6-icmp 
59 <---> ipv6-nonxt 
60 <---> ipv6-opts 
73 <---> rspf 
81 <---> vmtp 
88 <---> eigrp 
89 <---> ospf 
93 <---> ax.25 
94 <---> ipip 
97 <---> etherip 
98 <---> encap 
103 <---> pim 
108 <---> ipcomp 
112 <---> vrrp 
115 <---> l2tp 
124 <---> isis 
132 <---> sctp 
133 <---> fc 
135 <---> mobility-header 
136 <---> udplite 
137 <---> mpls-in-ip 
138 <---> manet 
139 <---> hip 
140 <---> shim6 
141 <---> wesp 
142 <---> rohc

[#2] recycling dot sp dot am at gmail dot com [2010-09-13 03:40:05]

Note that by the time of writing this note (5.3.3), there seems to be only two defined constants for the protocol numbers: SOL_UDP and SOL_TCP. 
For all other protocols (like ICMP,... ) you'll have to provide the exact number (EG: 1 for ICMP, ... )
<?php
    
echo getprotobynumber(SOL_TCP) . "\n"// prints tcp
    
echo getprotobynumber(SOL_UDP) . "\n"// prints udp
    
var_dump(getprotobyname('tcp') == SOL_TCP); // bool(true)
    
var_dump(getprotobyname('udp') == SOL_UDP); // bool(true)
?>

On a UNIX system (don't know if this is true for Windows), the php functions getprotobyname and getprotobynumber are just wrapper for their corresponding system calls. These functions returns the protocol name or protocol number based on the definition from IANA. If you are looking for a protocol and you don't know its number, you can find the exact protocol number here: http://www.iana.org/assignments/protocol-numbers

[#3] Vipindas K.S [2008-05-08 08:39:41]

getprotobynumber()
=====================
getprotobynumber() gets the protocol name for the given protocol number on the local system. If the protocol number is not recognized,the function returns FALSE.The given code snippet gives the list of protocols along with their protocol numbers

<?php
$format 
"%6s %s\n<br />";
for (
$number 0$number 255$number++)
 {
   if (
getprotobynumber ($number))

      
printf ($format$number-->"getprotobynumber ($number));
 }

?>


OUTPUT:

0--> ip 
1--> icmp 
3--> ggp 
6--> tcp 
8--> egp 
12--> pup 
17--> udp 
20--> hmp 
22--> xns-idp 
27--> rdp 
66--> rvd

上一篇: 下一篇: