使用PHP批量获取kali镜像下载链接,包含新版和指定旧版,快速获取输出所有下载链接 代码简单粗暴使用PHP写的,随便创建一个PHP文件复制到里面然后访问即可获取 <?php // 定义目标URL $url = "http://old.kali.org/kali-images/"; // 获取HTML内容 $html = file_get_contents($url); // 解析HTML内容 $dom = new DOMDocument(); @$dom->loadHTML($html); // 获取所有链接 $links = []; foreach ($dom->getElementsByTagName('a') as $link) { $href = $link->getAttribute('href'); $links[] = $href; } // 提取版本号 $versions = []; foreach ($links as $link) { if (preg_match('/kali-(\d{4}\.\d+)/', $link, $matches)) { $versions[] = $matches[1]; } } // 获取最新版本和2016年之后的版本 $latest_version = ""; $versions = array_unique($versions); rsort($versions); foreach ($versions as $version) { if (version_compare($version, "2016", ">=")) { // 默认获取2016到新版 // 获取该版本对应的链接 $latest_version = $version; $latest_version_url = rtrim($url, '/') . '/' . "kali-$latest_version/"; echo "Latest version: $latest_version\n"; echo "Latest version URL: $latest_version_url\n"; // 获取该版本的ISO文件链接 $iso_urls = []; $latest_version_html = file_get_contents($latest_version_url); $latest_version_dom = new DOMDocument(); @$latest_version_dom->loadHTML($latest_version_html); // 遍历该版本页面中的链接,查找以 .iso 结尾的文件链接 foreach ($latest_version_dom->getElementsByTagName('a') as $iso_link) { $iso_href = $iso_link->getAttribute('href'); // 只添加以 .iso 结尾且不包含 .torrent 的链接 if (strpos($iso_href, '.iso') !== false && strpos($iso_href, '.torrent') === false) { $iso_urls[] = rtrim($latest_version_url, '/') . '/' . $iso_href; } } // 输出该版本对应的ISO文件链接 if (!empty($iso_urls)) { echo "ISO URLs for version $latest_version:\n"; foreach ($iso_urls as $iso_url) { if (preg_match('/\.iso$/', $iso_url)) { echo "<li><a href='$iso_url'>$iso_url</a></li>"; // 写入文件,并添加换行符 file_put_contents("kali-iso.txt", "$iso_url\n", FILE_APPEND); } } echo "</ul>"; } else { echo "No ISO files found for version $latest_version.\n"; } } } ?>