2025年06月15日/ 浏览 1
fsockopen
或socket_create
函数:用于检查端口状态。:使用PHP字符串处理功能来构建Markdown格式的输出。
首先,创建一个新的PHP文件,如port_query_tool.php
。
php
function check_port_status($ip, $port) {
$status = 'closed';
$socket = @fsockopen($ip, $port, $errno, $errstr, 30);
if (!$socket) {
return $status;
} else {
$status = 'open';
fclose($socket);
return $status;
}
}
该函数尝试打开到指定IP和端口的连接,如果成功则认为该端口是开放的,否则是关闭的。
php
function generate_report($ip, $ports) {
$report = "## Port Status Report\n";
$report .= "### Keywords\n";
$report .= "- Port Status\n- Network Monitoring\n";
$report .= "### Description\n";
$report .= "This report provides the status of specified ports on the given IP address. The status is checked by attempting to open a connection to each port.\n";
$report .= "### Port Statuses\n";
foreach ($ports as $port) {
$status = check_port_status($ip, $port);
$report .= sprintf("- Port %s: %s\n", $port, $status);
}
return $report;
}
这个函数生成Markdown格式的报告,包括标题、关键词、描述和每个端口的检查结果。
“`php
if ($SERVER[“REQUESTMETHOD”] == “POST”) {
$ip = $POST[‘ip’]; // 用户输入的IP地址
$ports = explode(‘,’, $POST[‘ports’]); // 用户输入的端口号列表,用逗号分隔
$report = generate_report($ip, $ports); // 生成报告内容
} else { // 非POST请求处理,例如显示表单或错误信息等逻辑可在这里实现。… }
echo nl2br($report); // 输出Markdown报告为HTML,以便在浏览器中正确显示换行等格式。… } ?>} } ?>
这里结束代码块。