其他服务 - 网络函数(network)

介绍

预定义的网络函数

安装

无需安装 函数 checkdnsrr(), getmxrr()dns_get_record() 需要基于 Linux 运行

日志

openlog

1
2
bool openlog ( string $ident , int $option , int $facility )
为一个程序打开一个系统日志的链接

syslog

1
2
bool syslog ( int $priority , string $message )
生成系统日志信息, 存储到系统日志

closelog

1
2
bool closelog ( void )
关闭和系统日志的链接

sock

fsockopen

1
2
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
打开internet/ unix域的套接层链接

pfsockopen

1
2
resource pfsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
打开持续的 socket 链接

域名解析相关

checkdnsrr

1
2
3
4
5
6
7
/**
* $host 主机名/IP地址
*/
bool checkdnsrr ( string $host [, string $type = "MX" ] )
[alias] dns_check_record
[5.3]支持windows平台
检测是否有指定的dns记录, 只是检查

dns_get_record

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
array dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = false ]]]] )
给定的主机名的DNS记录
Array
(
[0] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 752
[type] => SOA
[mname] => f1g1ns1.dnspod.net
[rname] => freednsadmin.dnspod.com
[serial] => 1474983140
[refresh] => 3600
[retry] => 180
[expire] => 1209600
[minimum-ttl] => 180
)
[1] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 752
[type] => TXT
[txt] => v=spf1 include:spf.mxhichina.com -all
[entries] => Array
(
[0] => v=spf1 include:spf.mxhichina.com -all
)
)
[2] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 752
[type] => MX
[pri] => 10
[target] => mxw.mxhichina.com
)
[3] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 752
[type] => MX
[pri] => 5
[target] => mxn.mxhichina.com
)
[6] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 108002
[type] => NS
[target] => f1g1ns2.dnspod.net
)
)

gethostname

1
2
string gethostname ( void )
获取本机的主机名

gethostbyaddr

1
2
string gethostbyaddr ( string $ip_address )
根据指定的地址获取主机名

getmxrr

1
2
3
4
5
6
7
8
9
10
11
12
bool getmxrr ( string $hostname , array &$mxhosts [, array &$weight ] )
[5.3]支持windows平台
[alias] dns_get_mx
根据指定的主机名/IP获取mx记录
// code
getmxrr('sour-lemon.com', $mx);
print_r($mx);
Array
(
[0] => mxw.mxhichina.com
[1] => mxn.mxhichina.com
)

gethostbyname

1
2
string gethostbyname ( string $hostname )
根据指定的主机名称获取IP地址

gethostbynamel

1
2
array gethostbynamel ( string $hostname )
根据主机名称获取一系列的IP列表

getprotobyname

根据协议名称获取协议码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int getprotobyname ( string $name )
根据协议的名称获取协议的数字标识
// code
$arr=array("ip","icmp","ggp","tcp","egp","pup","udp","hmp","xns-idp","rdp","rvd" );
//Reads the names of protocols into an array..
for($i=0; $i<11; $i++) {
$proname=$arr[$i];
echo $proname .":", getprotobyname ($proname)."<br />";
}
此函数使用http和ftp测试过,没出来端口号,http和ftp算是服务,不是协议,使用getserverbyname来显示
$services = array('http', 'ftp', 'ssh', 'telnet', 'imap', 'smtp', 'nicname', 'gopher', 'finger','pop3', 'www');
foreach ($services as $service) {
$port = getservbyname($service, 'tcp');
echo $service . ": " . $port . "<br />\n";
}

getprotobynumber

1
2
string getprotobynumber ( int $number )
根据协议的数字获取协议的名称

getservbyname()

1
2
int getservbyname ( string $service , string $protocol )
获取协议的端口号

getservbyport

根据端口号获取服务名称

1
2
3
4
string getservbyport ( int $port , string $protocol )
根据端口号获取协议的名称
// code
getservbyport(80, 'tcp') // http

IP转换

ip2long

1
2
int ip2long ( string $ip_address )
转换IPV4 地址 -> 整形表示的地址

long2ip()

1
2
string long2ip ( string $proper_address )
把整形地址转换为 -> IPV4地址

inet_ntop

1
2
3
string inet_ntop ( string $in_addr )
[5.3]支持windows平台
转换 packed internet 地址 -> 人类可读的地址

inet_pton

1
2
3
string inet_pton ( string $address )
[5.3]支持windows平台
转换人类可读的IP地址 -> packed 地址

Header 头处理函数

header_register_callback

1
2
bool header_register_callback ( callable $callback )
注册头部处理时间的函数, 当PHP开始输出内容的时候调用这个函数

header_remove

1
2
3
void header_remove ([ string $name ] )
[5.3]支持windows平台
移除http header

1
2
3
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
header() 用来发送 raw http header
http://www.faqs.org/rfcs/rfc2616, header 必须在任何输出前调用

headers_list

1
2
3
array headers_list ( void )
返回一系列的相应头部
返回将要发送到浏览器的所有的头部的列表

headers_sent

1
2
bool headers_sent ([ string &$file [, int &$line ]] )
检测头部是否被发送, 当头部被送出之后你将无法使用header() 函数来修改http头部

http_response_code

1
2
int http_response_code ([ int $response_code ] )
[5.4.0] 设置或者获取http相应码

setcookie

1
2
3
4
5
6
7
8
9
bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
设置cookie
$name 名称
$value 设置值
$expire 过期时间的unix时间戳
$path 路径, 默认是 '/'
$domain 域名,对于老的浏览器, 最好是 'testdomain.com.', 末尾加上个 '.'
$secure 是否安全链接
$httponly 是否只是http可用

setrawcookie

1
2
bool setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
设置未 urlencoding 的cookie

socket

socket_get_status

1
2
socket_get_status
[see] stream_get_meta_data

socket_set_blocking

1
2
socket_set_blocking
[see] stream_set_blocking

socket_set_timeout

1
2
socket_set_timeout
[see] stream_set_timeout

原文地址 : 其他服务 - 网络函数(network)
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

作者

Duoli

发布于

2022-06-16

更新于

2022-08-24

许可协议

评论