获取kali所有下载链接,包含新版和指定返回旧版,快速获取输出下载链接

图片太长了仅展示输出结果样式

QQ截图20240402190915.jpg


使用方法:
在您的网站下创建一个php文件,然后把下面代码复制到文件内,直接域名/文件名即可自动获取,默认是获取2016-最新版的
获取快慢和服务器与网络有关正常10-20秒即可获取到,获取到链接后会在前端输出同时也会在网站根目录上传一个iso_links.txt 文件里面保存所有kali镜像下载链接

<?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", ">=")) {
        // 获取该版本对应的链接
        $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("iso_links.txt", "$iso_url\n", FILE_APPEND);
                }
            }
            echo "</ul>";
        } else {
            echo "No ISO files found for version $latest_version.\n";
        }
    }
}

?> 
发表观点 / Comment

提示:本文章评论功能已关闭