|
1 | 1 | <template> |
2 | 2 | <div class="container mx-auto px-4 py-8"> |
3 | 3 | <article class="prose dark:prose-invert max-w-none"> |
4 | | - <h1 class="text-4xl font-bold mb-6">AS213605 Network</h1> |
| 4 | + <h1 class="text-4xl font-bold mb-6">AS213605 Networks</h1> |
5 | 5 |
|
6 | 6 | <p class="mb-4"> |
7 | 7 | PYSIO-NetWork ( |
8 | 8 | <a href="https://apps.db.ripe.net/db-web-ui/lookup?source=ripe&key=AS213605&type=aut-num" |
9 | | - class="text-blue-500 hover:text-blue-600" target="_blank">AS213605</a> |
| 9 | + class="text-blue-500 hover:text-blue-600" target="_blank">AS213605</a>, |
| 10 | + <a href="https://wq.apnic.net/apnic-bin/whois.pl?searchtext=AS154185" class="text-blue-500 hover:text-blue-600" |
| 11 | + target="_blank">AS154185</a> |
10 | 12 | ) 是一个独立运营的网络系统。 |
11 | 13 | </p> |
12 | 14 |
|
13 | 15 | <div class="bg-green-50 border-l-4 border-green-400 p-4 my-4 dark:bg-green-900/20"> |
14 | 16 | <p class="text-green-700 dark:text-green-200"> |
15 | 17 | 我们支持所有地区和所有人的Peer和下游链接,无门槛,仅限非商业用途。查看我们的<a href="/ix" |
16 | | - class="text-green-600 hover:text-green-800 font-semibold dark:text-green-300 dark:hover:text-green-100">IX交换点</a>了解详细信息。如果您对 DN42 网络感兴趣,请查看我们的 DN42 页面。 |
| 18 | + class="text-green-600 hover:text-green-800 font-semibold dark:text-green-300 dark:hover:text-green-100">IX交换点</a>了解详细信息。如果您对 |
| 19 | + DN42 网络感兴趣,请查看我们的 DN42 页面。 |
17 | 20 | </p> |
18 | 21 | </div> |
19 | 22 |
|
|
36 | 39 | </div> |
37 | 40 | <h3 class="font-bold text-blue-800 dark:text-blue-200">ASN</h3> |
38 | 41 | </div> |
39 | | - <code |
40 | | - class="block bg-white/80 p-3 rounded-lg font-mono text-lg font-semibold text-blue-900 dark:bg-gray-800 dark:text-blue-300">AS213605</code> |
| 42 | + <div class="space-y-2"> |
| 43 | + <code |
| 44 | + class="block bg-white/80 p-3 rounded-lg font-mono text-lg font-semibold text-blue-900 dark:bg-gray-800 dark:text-blue-300">AS213605</code> |
| 45 | + <code |
| 46 | + class="block bg-white/80 p-3 rounded-lg font-mono text-lg font-semibold text-blue-900 dark:bg-gray-800 dark:text-blue-300">AS154185</code> |
| 47 | + </div> |
41 | 48 | </div> |
42 | 49 |
|
43 | 50 | <div |
|
56 | 63 | </div> |
57 | 64 | </div> |
58 | 65 |
|
| 66 | + <div |
| 67 | + class="bg-gradient-to-br from-indigo-50 to-indigo-100 p-6 rounded-xl border border-indigo-200 shadow-sm hover:shadow-md transition duration-300 dark:from-indigo-900/20 dark:to-indigo-800/20 dark:border-indigo-700"> |
| 68 | + <div class="flex items-center mb-3"> |
| 69 | + <div class="w-10 h-10 rounded-full bg-indigo-500/10 flex items-center justify-center mr-3"> |
| 70 | + <i class="fas fa-network-wired text-indigo-500 text-lg"></i> |
| 71 | + </div> |
| 72 | + <h3 class="font-bold text-indigo-800 dark:text-indigo-200">IPv4 地址块</h3> |
| 73 | + </div> |
| 74 | + <div class="space-y-2"> |
| 75 | + <code |
| 76 | + class="block bg-white/80 p-3 rounded-lg font-mono text-sm font-semibold text-indigo-900 dark:bg-gray-800 dark:text-indigo-300">49.213.62.0/24</code> |
| 77 | + </div> |
| 78 | + </div> |
| 79 | + |
59 | 80 | <div |
60 | 81 | class="bg-gradient-to-br from-green-50 to-green-100 p-6 rounded-xl border border-green-200 shadow-sm hover:shadow-md transition duration-300 dark:from-green-900/20 dark:to-green-800/20 dark:border-green-700"> |
61 | 82 | <div class="flex items-center mb-3"> |
|
83 | 104 | <div |
84 | 105 | class="bg-white/80 p-2 rounded text-sm font-medium text-green-900 dark:bg-gray-800 dark:text-green-300"> |
85 | 106 | ONXI</div> |
86 | | - </div> |
87 | | - </div> |
88 | | - |
89 | | - <div |
90 | | - class="bg-gradient-to-br from-orange-50 to-orange-100 p-6 rounded-xl border border-orange-200 shadow-sm hover:shadow-md transition duration-300 dark:from-orange-900/20 dark:to-orange-800/20 dark:border-orange-700"> |
91 | | - <div class="flex items-center mb-3"> |
92 | | - <div class="w-10 h-10 rounded-full bg-orange-500/10 flex items-center justify-center mr-3"> |
93 | | - <i class="fas fa-handshake text-orange-500 text-lg"></i> |
94 | | - </div> |
95 | | - <h3 class="font-bold text-orange-800 dark:text-orange-200">对等政策</h3> |
96 | | - </div> |
97 | | - <div class="space-y-2"> |
98 | | - <div |
99 | | - class="bg-white/80 p-2 rounded text-sm font-medium text-orange-900 dark:bg-gray-800 dark:text-orange-300"> |
100 | | - 开放对等</div> |
101 | 107 | <div |
102 | | - class="bg-white/80 p-2 rounded text-sm font-medium text-orange-900 dark:bg-gray-800 dark:text-orange-300"> |
103 | | - 支持下游</div> |
| 108 | + class="bg-white/80 p-2 rounded text-sm font-medium text-green-900 dark:bg-gray-800 dark:text-green-300"> |
| 109 | + TPIX-TW</div> |
104 | 110 | </div> |
105 | 111 | </div> |
| 112 | + |
106 | 113 | </div> |
107 | 114 | </section> |
108 | 115 |
|
|
116 | 123 | </p> |
117 | 124 | </section> |
118 | 125 |
|
119 | | - <section class="my-8"> |
120 | | - <h2 class="text-2xl font-bold mb-4">BIRD 配置文件</h2> |
121 | | - <p class="mb-4"> |
122 | | - 我们公开了以下节点的BIRD配置文件,您可以通过以下Git仓库访问: |
123 | | - </p> |
124 | | - <div class="grid md:grid-cols-3 gap-6"> |
125 | | - <a href="https://git.pysio.online/pysio-team/akix" target="_blank" |
126 | | - class="block bg-gradient-to-br from-gray-50 to-gray-100 p-5 rounded-xl border border-gray-200 shadow-sm hover:shadow-md transition duration-300 dark:from-gray-800 dark:to-gray-700 dark:border-gray-600"> |
127 | | - <div class="flex items-center mb-3"> |
128 | | - <div |
129 | | - class="w-10 h-10 rounded-full bg-orange-100 flex items-center justify-center mr-3 dark:bg-orange-900"> |
130 | | - <i class="fab fa-gitlab text-orange-500 text-xl"></i> |
131 | | - </div> |
132 | | - <h3 class="font-bold text-lg">AKIX 配置</h3> |
133 | | - </div> |
134 | | - <p class="text-sm text-gray-600 dark:text-gray-300">AKIX交换点节点配置</p> |
135 | | - <div class="mt-4 flex items-center text-blue-500 text-sm"> |
136 | | - <i class="fas fa-code-branch mr-1"></i> <span>{{ repoData.akix.commits }}次提交</span> |
137 | | - <i class="fas fa-history ml-3 mr-1"></i> <span>{{ repoData.akix.lastUpdated }}</span> |
138 | | - </div> |
139 | | - </a> |
140 | | - <a href="https://git.pysio.online/pysio-team/ifog" target="_blank" |
141 | | - class="block bg-gradient-to-br from-gray-50 to-gray-100 p-5 rounded-xl border border-gray-200 shadow-sm hover:shadow-md transition duration-300 dark:from-gray-800 dark:to-gray-700 dark:border-gray-600"> |
142 | | - <div class="flex items-center mb-3"> |
143 | | - <div |
144 | | - class="w-10 h-10 rounded-full bg-orange-100 flex items-center justify-center mr-3 dark:bg-orange-900"> |
145 | | - <i class="fab fa-gitlab text-orange-500 text-xl"></i> |
146 | | - </div> |
147 | | - <h3 class="font-bold text-lg">IFog 配置</h3> |
148 | | - </div> |
149 | | - <p class="text-sm text-gray-600 dark:text-gray-300">瑞士IFog节点配置</p> |
150 | | - <div class="mt-4 flex items-center text-blue-500 text-sm"> |
151 | | - <i class="fas fa-code-branch mr-1"></i> <span>{{ repoData.ifog.commits }}次提交</span> |
152 | | - <i class="fas fa-history ml-3 mr-1"></i> <span>{{ repoData.ifog.lastUpdated }}</span> |
153 | | - </div> |
154 | | - </a> |
155 | | - <a href="https://git.pysio.online/pysio-team/skywolf" target="_blank" |
156 | | - class="block bg-gradient-to-br from-gray-50 to-gray-100 p-5 rounded-xl border border-gray-200 shadow-sm hover:shadow-md transition duration-300 dark:from-gray-800 dark:to-gray-700 dark:border-gray-600"> |
157 | | - <div class="flex items-center mb-3"> |
158 | | - <div |
159 | | - class="w-10 h-10 rounded-full bg-orange-100 flex items-center justify-center mr-3 dark:bg-orange-900"> |
160 | | - <i class="fab fa-gitlab text-orange-500 text-xl"></i> |
161 | | - </div> |
162 | | - <h3 class="font-bold text-lg">SkyWolf 配置</h3> |
163 | | - </div> |
164 | | - <p class="text-sm text-gray-600 dark:text-gray-300">香港SkyWolf节点配置</p> |
165 | | - <div class="mt-4 flex items-center text-blue-500 text-sm"> |
166 | | - <i class="fas fa-code-branch mr-1"></i> <span>{{ repoData.skywolf.commits }}次提交</span> |
167 | | - <i class="fas fa-history ml-3 mr-1"></i> <span>{{ repoData.skywolf.lastUpdated }}</span> |
168 | | - </div> |
169 | | - </a> |
170 | | - </div> |
171 | | - </section> |
172 | | - |
173 | 126 | <section class="my-8"> |
174 | 127 | <h2 class="text-2xl font-bold mb-4">节点列表</h2> |
175 | 128 | <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6"> |
|
597 | 550 | </template> |
598 | 551 |
|
599 | 552 | <script setup lang="ts"> |
600 | | -import { computed } from 'vue' |
601 | | -
|
602 | 553 | definePageMeta({ |
603 | 554 | layout: 'default' |
604 | 555 | }) |
605 | | -
|
606 | | -// 定义仓库信息接口 |
607 | | -interface RepoInfo { |
608 | | - commits: number; |
609 | | - lastUpdated: string; |
610 | | -} |
611 | | -
|
612 | | -interface GitlabData { |
613 | | - akix: RepoInfo; |
614 | | - ifog: RepoInfo; |
615 | | - skywolf: RepoInfo; |
616 | | -} |
617 | | -
|
618 | | -// 定义GitLab API响应接口 |
619 | | -interface GitLabApiResponse { |
620 | | - commit_count: number; |
621 | | - last_activity_at: string; |
622 | | - [key: string]: any; // 允许其他属性 |
623 | | -} |
624 | | -
|
625 | | -// 格式化日期为中文格式 |
626 | | -const formatDate = (dateString: string) => { |
627 | | - if (!dateString) return '未知'; |
628 | | - const date = new Date(dateString); |
629 | | - return date.toLocaleDateString('zh-CN'); |
630 | | -} |
631 | | -
|
632 | | -// 默认数据 |
633 | | -const defaultData: GitlabData = { |
634 | | - akix: { commits: 16, lastUpdated: '2025-05-10' }, |
635 | | - ifog: { commits: 17, lastUpdated: '2025-05-07' }, |
636 | | - skywolf: { commits: 24, lastUpdated: '2025-05-13' } |
637 | | -}; |
638 | | -
|
639 | | -// 使用useAsyncData在服务端获取GitLab数据 |
640 | | -const { data: gitlabData } = await useAsyncData('gitlabRepos', async () => { |
641 | | - try { |
642 | | - // GitLab API 端点 |
643 | | - const apiBase = 'https://git.pysio.online/api/v4/projects'; |
644 | | -
|
645 | | - // 并行请求三个仓库的数据 |
646 | | - const [akixData, ifogData, skywolfData] = await Promise.all([ |
647 | | - $fetch<GitLabApiResponse>(`${apiBase}/pysio-team%2Fakix`), |
648 | | - $fetch<GitLabApiResponse>(`${apiBase}/pysio-team%2Fifog`), |
649 | | - $fetch<GitLabApiResponse>(`${apiBase}/pysio-team%2Fskywolf`) |
650 | | - ]); |
651 | | -
|
652 | | - // 返回处理后的数据 |
653 | | - return { |
654 | | - akix: { |
655 | | - commits: akixData.commit_count || 16, |
656 | | - lastUpdated: formatDate(akixData.last_activity_at) |
657 | | - }, |
658 | | - ifog: { |
659 | | - commits: ifogData.commit_count || 17, |
660 | | - lastUpdated: formatDate(ifogData.last_activity_at) |
661 | | - }, |
662 | | - skywolf: { |
663 | | - commits: skywolfData.commit_count || 24, |
664 | | - lastUpdated: formatDate(skywolfData.last_activity_at) |
665 | | - } |
666 | | - } as GitlabData; |
667 | | - } catch (error) { |
668 | | - console.error('获取GitLab仓库数据失败:', error); |
669 | | - // 发生错误时返回默认数据 |
670 | | - return defaultData; |
671 | | - } |
672 | | -}, { server: true }) // 确保在服务端执行 |
673 | | -
|
674 | | -// 为了处理gitlabData可能为null的情况,提供一个计算属性 |
675 | | -const repoData = computed(() => gitlabData.value || defaultData); |
676 | 556 | </script> |
677 | 557 |
|
678 | 558 | <style> |
|
0 commit comments