@jjlmoya/utils-streaming 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/category/i18n/de.ts +134 -0
- package/src/category/i18n/id.ts +134 -0
- package/src/category/i18n/it.ts +134 -0
- package/src/category/i18n/ja.ts +134 -0
- package/src/category/i18n/ko.ts +134 -0
- package/src/category/i18n/nl.ts +134 -0
- package/src/category/i18n/pl.ts +134 -0
- package/src/category/i18n/pt.ts +134 -0
- package/src/category/i18n/ru.ts +134 -0
- package/src/category/i18n/sv.ts +134 -0
- package/src/category/i18n/tr.ts +134 -0
- package/src/category/i18n/zh.ts +134 -0
- package/src/category/index.ts +12 -0
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tool/sorteo/i18n/de.ts +256 -0
- package/src/tool/sorteo/i18n/id.ts +256 -0
- package/src/tool/sorteo/i18n/it.ts +256 -0
- package/src/tool/sorteo/i18n/ja.ts +256 -0
- package/src/tool/sorteo/i18n/ko.ts +256 -0
- package/src/tool/sorteo/i18n/nl.ts +256 -0
- package/src/tool/sorteo/i18n/pl.ts +256 -0
- package/src/tool/sorteo/i18n/pt.ts +256 -0
- package/src/tool/sorteo/i18n/ru.ts +256 -0
- package/src/tool/sorteo/i18n/sv.ts +256 -0
- package/src/tool/sorteo/i18n/tr.ts +256 -0
- package/src/tool/sorteo/i18n/zh.ts +256 -0
- package/src/tool/sorteo/index.ts +12 -0
- package/src/tool/tebasCheck/i18n/de.ts +256 -0
- package/src/tool/tebasCheck/i18n/id.ts +256 -0
- package/src/tool/tebasCheck/i18n/it.ts +256 -0
- package/src/tool/tebasCheck/i18n/ja.ts +256 -0
- package/src/tool/tebasCheck/i18n/ko.ts +256 -0
- package/src/tool/tebasCheck/i18n/nl.ts +256 -0
- package/src/tool/tebasCheck/i18n/pl.ts +256 -0
- package/src/tool/tebasCheck/i18n/pt.ts +256 -0
- package/src/tool/tebasCheck/i18n/ru.ts +256 -0
- package/src/tool/tebasCheck/i18n/sv.ts +256 -0
- package/src/tool/tebasCheck/i18n/tr.ts +256 -0
- package/src/tool/tebasCheck/i18n/zh.ts +256 -0
- package/src/tool/tebasCheck/index.ts +12 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TebasCheckUI } from '../types';
|
|
4
|
+
|
|
5
|
+
const slug = 'isp-engelleme-dedektoru';
|
|
6
|
+
const title = 'ISP Engelleme Dedektörü Tebas Check';
|
|
7
|
+
const description = 'İspanyol ISP\'leri tarafından Cloudflare paylaşımlı IP\'lerinin yasa dışı olarak engellenmesini tespit etmek için teşhis aracı.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Tebas-Check nedir?',
|
|
12
|
+
answer: 'Korsan yayınlara erişimi engellemek için İspanya\'da adli olarak engellenen bilinen Cloudflare IP\'lerine bağlanmaya çalışan bir teşhis aracıdır. Sorun, paylaşımlı bir IP\'yi engelleyerek binlerce yasal web sitesinin de "bozulmasıdır".',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Neden internet servis sağlayıcım bir Cloudflare IP\'sini engelliyor?',
|
|
16
|
+
answer: 'İnternet servis sağlayıcılarının, korunan içeriği yayınladığı iddia edilen sunucuların IP\'lerini engellemek zorunda olduğu dinamik ihtiyati tedbirler nedeniyle. Cloudflare (CDN) kullanarak birçok web sitesi aynı IP\'yi paylaşır ve bu da masum kullanıcılar için ikincil zarara neden olur.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Test nasıl çalışır?',
|
|
20
|
+
answer: 'Engellenmiş olarak işaretlenen IP\'lerden küçük bir kaynak yüklemeye çalışıyoruz. Bağlantı, yalnızca bu IP\'lerde "Zaman Aşımı" veya bağlantı sıfırlamaları nedeniyle başarısız olursa, bu sağlayıcınızın IP filtreleme uyguladığının açık bir göstergesidir.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Bu engellemeyi aşabilir miyim?',
|
|
24
|
+
answer: 'IP engellemelerini yalnızca DNS değiştirerek aşmak zordur. Çözüm genellikle bir VPN, Tor tarayıcısı kullanmayı veya Cloudflare\'in ziyaret etmeye çalıştığınız yasal hizmete yeni bir IP atamasını beklemeyi içerir.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'VPN veya Proxy\'leri Devre Dışı Bırakın',
|
|
31
|
+
text: 'Testin doğru olması için, aracı katmanlar olmadan yönlendiricinizin doğrudan bağlantısını (Fiber veya 4G/5G) kullanmalısınız.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Taramayı başlatın',
|
|
35
|
+
text: 'Teşhis düğmesine tıklayın. Araç, engelleme şüphesi altındaki IP\'lere test paketleri gönderecektir.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Sonuçları yorumlayın',
|
|
39
|
+
text: 'Sonuçları kırmızı renkte görüyorsanız, bu IP\'ye ulaşılamadığı anlamına gelir. Yeşil ise trafiğiniz normal akıyor demektir.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Rapor oluşturun',
|
|
43
|
+
text: 'Yasal hizmetleri engelliyorlarsa, sonuçları olayı sağlayıcınıza bildirmek için kullanabilirsiniz.',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'FAQPage',
|
|
50
|
+
mainEntity: faqData.map((item) => ({
|
|
51
|
+
'@type': 'Question',
|
|
52
|
+
name: item.question,
|
|
53
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
54
|
+
})),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const howToSchema: WithContext<HowTo> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'HowTo',
|
|
60
|
+
name: title,
|
|
61
|
+
description,
|
|
62
|
+
step: howToData.map((step, i) => ({
|
|
63
|
+
'@type': 'HowToStep',
|
|
64
|
+
position: i + 1,
|
|
65
|
+
name: step.name,
|
|
66
|
+
text: step.text,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
71
|
+
'@context': 'https://schema.org',
|
|
72
|
+
'@type': 'SoftwareApplication',
|
|
73
|
+
name: title,
|
|
74
|
+
description,
|
|
75
|
+
applicationCategory: 'UtilityApplication',
|
|
76
|
+
operatingSystem: 'All',
|
|
77
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
78
|
+
inLanguage: 'tr',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Referanslar ve Bağlam',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Cloudflare: IP Engellemesini Anlamak',
|
|
91
|
+
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'İspanyol dinamik engelleme düzenlemeleri',
|
|
95
|
+
url: 'https://www.poderjudicial.es/',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Neden her şey çalışmayı durdurdu?',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: '<strong>"Önleyici Adalet"</strong>in harika dünyasına hoş geldiniz. Eğer bir Pazar günü buradaysanız ve yasal web siteleri yüklenmeyi durdururken Twitter mükemmel çalışıyorsa, muhtemelen yasa dışı futbol yayınlarına karşı yürütülen mücadelenin ikincil bir kurbanısınız.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'İspanya\'da hakimler belirli spor kuruluşlarına bir "kırmızı düğme" verdiler. Bu düğme, onların dakika dakika doğrudan adli denetim olmaksızın IP adreslerini gerçek zamanlı olarak engellemelerine olanak tanıyor. Sorun şu ki, bir lunapark tüfeğiyle nişan alıyorlar ve genellikle "yasa dışı maçların" yanı sıra hastanelerin, üniversitelerin veya en sevdiğiniz yemek bloğunun yaşadığı paylaşımlı sunucuları vuruyorlar.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Yanan Bina Teorisi',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Bir gökdelenin 4B dairesinden yasa dışı bir yayının yapıldığını hayal edin. Mantıklı çözüm 4B\'nin kapısını çalıp elektriğini kesmek olurdu, değil mi?',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Hayır, değil. Mevcut çözüm, <strong>tüm binanın temellerini havaya uçurmaktır</strong>.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Cloudflare gibi bir hizmetin IP\'sini engelleyerek, internet sağlayıcısı sadece korsanı durdurmakla kalmaz, aynı zamanda aynı dijital adresi paylaşan diğer 50.000 yasal web sitesini de durdurur. Eğer çalışıyor veya ders çalışıyorsanız ve web siteniz bu IP\'yi kullanıyorsa: kötü şans, ikincil zarar. Şikayetinizi baş silah ustasına iletin.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: 'Bu teşhis aracı tam olarak ne yapıyor?',
|
|
134
|
+
level: 3,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Bu araç, sağlayıcınızın seçici IP adresi engellemesi uygulayıp uygulamadığını belirlemek için üç adımda teknik bir analiz gerçekleştirir:',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
columns: 3,
|
|
143
|
+
items: [
|
|
144
|
+
{
|
|
145
|
+
title: 'Google\'a Ping At',
|
|
146
|
+
description: 'Bir nabzınız olup olmadığını kontrol ediyoruz. Google yüklenmiyorsa, sorun Wi-Fi faturanızı ödememiş olmanızdır. Bu, temel bağlantı testidir.',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
title: 'Cloudflare\'e Ping At',
|
|
150
|
+
description: '1.1.1.1\'e ulaşmaya çalışıyoruz. Bu, İspanya\'daki engellemenin "maden ocağındaki kanaryası"dır ve adli engellemelerin ana hedefidir.',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
title: 'Karar',
|
|
154
|
+
description: 'Google çalışıyor ve Cloudflare başarısız oluyorsa, durum gün gibi ortadadır: Sağlayıcınız Cloudflare\'e seçici IP engellemesi uyguluyor.',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Dinamik Engellemenin Etkisi',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'comparative',
|
|
165
|
+
columns: 3,
|
|
166
|
+
items: [
|
|
167
|
+
{
|
|
168
|
+
title: 'Yanlış Pozitifler',
|
|
169
|
+
description: 'Şirket web siteleri, kişisel bloglar ve devlet hizmetleri, yetkisiz bir akış sunucusuyla bir IP\'yi paylaşırlarsa çalışmayı durdurabilir.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
title: 'IP Filtreleme',
|
|
173
|
+
description: 'DNS engellemesinin aksine, IP filtreleme ağ düzeyinde bağlantıyı engeller, bu da sorunu çözmek için DNS değiştirmenin yetersiz kalmasına neden olur.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
title: 'Şeffaflık Eksikliği',
|
|
177
|
+
description: 'Genellikle kullanıcı, sorunun kendi bağlantısından mı yoksa aktif bir sağlayıcı engellemesinden mi kaynaklandığını bilmeden yalnızca bir "Zaman Aşımı" hatası görür.',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'title',
|
|
183
|
+
text: 'Kimsenin Cevaplamak İstemediği Sorular',
|
|
184
|
+
level: 3,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'list',
|
|
188
|
+
items: [
|
|
189
|
+
'<strong>Bunu kullanmak yasa dışı mı?</strong> Hayır. Bir sunucuya ping atmak, bir mağaza vitrinine bakmak kadar yasaldır. Bu araç pasif bir ağ teşhisidir. Şifrelemeyi kırmaz, parolaları çözmez ve korunan içeriğe erişmez. Sadece neden her zamanki web sitelerinize erişemediğinizi söyler.',
|
|
190
|
+
'<strong>Nasıl düzeltebilirim?</strong> Etkin bir engellemeniz varsa, DNS değiştirmek artık yardımcı olmaz (tüm numaraları biliyorlar). Bugün tek gerçek çözüm bir <strong>VPN</strong>\'dir. Trafiğinizi şifreleyerek, sağlayıcınız ne istediğinizi veya kime sorduğunuzu göremez ve bu nedenle sizi "seçici olarak" (veya yanlışlıkla) engelleyemez.',
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
type: 'title',
|
|
195
|
+
text: 'Yayıncı Modu / OBS Widget\'ı',
|
|
196
|
+
level: 3,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'paragraph',
|
|
200
|
+
html: 'Yayıncı mısınız ve yayınınızda gerçek zamanlı sansür durumunu göstermek mi istiyorsunuz? Şeffaf arka planlı (chroma-handy) ve her 5 dakikada bir otomatik yenileme özelliğine sahip ultra minimalist bir mod oluşturduk.',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: 'list',
|
|
204
|
+
items: [
|
|
205
|
+
'<strong>Adım 1:</strong> OBS\'de yeni bir <strong>Tarayıcı</strong> kaynağı ekleyin.',
|
|
206
|
+
'<strong>Adım 2:</strong> Bu URL\'yi kullanın: <code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
|
|
207
|
+
'<strong>Adım 3:</strong> Bitti! Bağlantınızın temiz mi yoksa adli saldırı altında mı olduğunu gösteren büyük bir simge (Yeşil/Kırmızı) görünecektir.',
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
type: 'tip',
|
|
212
|
+
title: 'Yasal Uyarı',
|
|
213
|
+
html: '<p>Bu aracın herhangi bir spor kuruluşuyla bağlantısı yoktur, korunan içeriğe erişimi kolaylaştırmaz ve teknolojik koruma önlemlerini (DRM) atlatmaz. Sadece kullanıcıyı internet bağlantısının yapay olarak düşürüldüğü konusunda bilgilendirir.</p>',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
ui: {
|
|
217
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
218
|
+
bibliographyTitle: 'Referanslar ve Bağlam',
|
|
219
|
+
scanning: 'Matris taranıyor...',
|
|
220
|
+
seekingBlocks: 'Fiberinizdeki somut engeller aranıyor...',
|
|
221
|
+
blockedTitle: 'ENGELLENİYOR...',
|
|
222
|
+
blockedDiagnosis: 'Teşhis: "Seçici Sansür"',
|
|
223
|
+
blockedReason: 'Sağlayıcınızda müdahale tespit ettik. Cloudflare veya DNS manipüle ediliyor.',
|
|
224
|
+
noInternetTitle: 'BAĞLANTI YOK',
|
|
225
|
+
noInternetReason: 'İnternet erişiminiz yok gibi görünüyor. Kablonuzu veya faturanızı kontrol edin.',
|
|
226
|
+
successTitle: 'ÖZGÜRSÜNÜZ',
|
|
227
|
+
successReason: 'Bağlantınız temiz görünüyor. Küresel engellemeler varsa bunlar sizi etkilemiyor.',
|
|
228
|
+
retryBtn: 'Adaleti tekrar kışkırtın',
|
|
229
|
+
authorNoteTitle: 'Yazarın Notu:',
|
|
230
|
+
authorNoteText: 'Tebas\'ın "kara eli"nden etkilenmediğim için bu yardımcı programı tam olarak test edemedim. Teşhisi geliştirmeme yardımcı olmak isterseniz benimle iletişime geçin.',
|
|
231
|
+
consoleHeader: 'TEBAS_OS v3.2.0',
|
|
232
|
+
statusNegotiating: 'Yönlendiricinizle görüşülüyor...',
|
|
233
|
+
statusDodging: 'Mahkeme genelgesinden kaçılıyor...',
|
|
234
|
+
statusCheckingPirate: 'Korsan olup olmadığınız kontrol ediliyor (göz kırpma)...',
|
|
235
|
+
statusPinging: 'Var olup olmadığınızı görmek için Google\'a ping atılıyor...',
|
|
236
|
+
statusConsulting: 'Paylaşımlı IP kahinine danışılıyor...',
|
|
237
|
+
statusCheckingFee: 'Tebas\'ın serbest çalışan ücretini ödeyip ödemediği kontrol ediliyor...',
|
|
238
|
+
statusCalculating: 'Piyangoyu kazanma olasılığı hesaplanıyor...',
|
|
239
|
+
statusDeciphering: 'Sağlayıcı sözleşmeniz deşifre edilmeye çalışılıyor...',
|
|
240
|
+
logStarted: "OTONOM PROTOKOL 'TEBAS_WATCH' BAŞLATILIYOR...",
|
|
241
|
+
logDetecting: '> Sağlayıcı ve temel bağlantı tespit ediliyor...',
|
|
242
|
+
logIspFound: '> Sağlayıcı tespit edildi: ',
|
|
243
|
+
logConnError: '> Temel bağlantı hatası',
|
|
244
|
+
logDnsCross: '> DNS veri çapraz kontrolü (DoH vs Yerel) yürütülüyor...',
|
|
245
|
+
logDnsGoogle: '> Gerçek DNS (Google): ',
|
|
246
|
+
logDnsPoisoned: '> ALARM: Zehirlenmiş DNS tespit edildi.',
|
|
247
|
+
logDnsNoDoh: '> DoH kullanılamıyor, DNS çapraz kontrolü atlanıyor.',
|
|
248
|
+
logLaunchingProbes: '> Kritik hedefler üzerinde sondalar başlatılıyor...',
|
|
249
|
+
logIpBlocked: '> Hedef {ip}: YANIT YOK (Şüpheli IP engelleme)',
|
|
250
|
+
logIpActive: '> Hedef {ip}: AKTİF',
|
|
251
|
+
logAlertInterference: '!!! ADLİ MÜDAHALE ALARMI !!!',
|
|
252
|
+
logNoInternet: 'İNTERNET ERİŞİMİ YOK',
|
|
253
|
+
logClean: 'TEMİZ BAĞLANTI. KEYFİNİ ÇIKARIN.',
|
|
254
|
+
logDiagError: 'TEŞHİS HATASI',
|
|
255
|
+
},
|
|
256
|
+
};
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TebasCheckUI } from '../types';
|
|
4
|
+
|
|
5
|
+
const slug = 'isp-blockage-detector';
|
|
6
|
+
const title = 'ISP 封锁检测器 Tebas Check';
|
|
7
|
+
const description = '用于检测西班牙 ISP 非法封锁 Cloudflare 共享 IP 的诊断工具。';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: '什么是 Tebas-Check?',
|
|
12
|
+
answer: '这是一项诊断工具,尝试连接到在西班牙被司法封锁的已知 Cloudflare IP,以防止访问盗版广播。问题在于,通过封锁共享 IP,成千上万的正规网站也会被“误伤”。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '为什么我的 ISP 封锁了 Cloudflare IP?',
|
|
16
|
+
answer: '这是由于动态预防措施,ISP 必须封锁涉嫌广播受保护内容的服务器 IP。由于使用 Cloudflare (CDN),许多网站共享同一个 IP,从而导致无辜用户受到连带损害。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '测试是如何工作的?',
|
|
20
|
+
answer: '我们尝试从标记为已封锁的 IP 加载一个小资源。如果仅在这些 IP 上由于“超时”或连接重置而导致连接失败,则清楚地表明您的 ISP 正在应用 IP 过滤。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '我可以绕过此封锁吗?',
|
|
24
|
+
answer: '仅通过更改 DNS 很难绕过 IP 封锁。解决方案通常包括使用 VPN、Tor 浏览器,或等待 Cloudflare 为您尝试访问的正规服务分配新的 IP。',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: '禁用 VPN 或代理',
|
|
31
|
+
text: '为了使测试准确,您必须使用路由器的直接连接(光纤或 4G/5G),而不使用中间层。',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '点击开始扫描',
|
|
35
|
+
text: '点击诊断按钮。该工具将向涉嫌封锁的 IP 发送测试数据包。',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: '解读结果',
|
|
39
|
+
text: '如果您看到红色的结果,这意味着该 IP 无法访问。如果是绿色的,则您的流量正常流动。',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: '生成报告',
|
|
43
|
+
text: '如果 ISP 封锁了正规服务,您可以使用结果向您的 ISP 举报该事件。',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
|
|
47
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
48
|
+
'@context': 'https://schema.org',
|
|
49
|
+
'@type': 'FAQPage',
|
|
50
|
+
mainEntity: faqData.map((item) => ({
|
|
51
|
+
'@type': 'Question',
|
|
52
|
+
name: item.question,
|
|
53
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
54
|
+
})),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const howToSchema: WithContext<HowTo> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'HowTo',
|
|
60
|
+
name: title,
|
|
61
|
+
description,
|
|
62
|
+
step: howToData.map((step, i) => ({
|
|
63
|
+
'@type': 'HowToStep',
|
|
64
|
+
position: i + 1,
|
|
65
|
+
name: step.name,
|
|
66
|
+
text: step.text,
|
|
67
|
+
})),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
71
|
+
'@context': 'https://schema.org',
|
|
72
|
+
'@type': 'SoftwareApplication',
|
|
73
|
+
name: title,
|
|
74
|
+
description,
|
|
75
|
+
applicationCategory: 'UtilityApplication',
|
|
76
|
+
operatingSystem: 'All',
|
|
77
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
78
|
+
inLanguage: 'zh',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: '常见问题',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: '参考资料与背景',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Cloudflare: 了解 IP 封锁',
|
|
91
|
+
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: '西班牙动态封锁法规',
|
|
95
|
+
url: 'https://www.poderjudicial.es/',
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: '为什么一切都停止工作了?',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: '欢迎来到<strong>“预防性司法”</strong>的神奇世界。如果你在周日下午来到这里,正规网站停止加载,而 Twitter 运行完美,那么你可能是打击非法足球转播行动的连带受害者。',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: '在西班牙,法官给了某些体育实体一个“红色按钮”。这个按钮允许他们实时封锁 IP 地址,而无需每分钟直接进行司法监督。问题在于,他们就像用园游会的猎枪瞄准一样,经常射中共享服务器,除了“非法比赛”外,那里还住着医院、大学或你最喜欢的烹饪博客。',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: '起火建筑理论',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: '想象一下,摩天大楼的 4B 公寓正在播送非法流媒体。逻辑上的解决方案应该是敲 4B 的门并切断其电源,对吧?',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: '不,不是的。目前的解决方案是<strong>炸毁整座建筑的地基</strong>。',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '通过封锁 Cloudflare 等服务的 IP,互联网提供商不仅击倒了盗版者,还击倒了共享该数字地址的其他 50,000 个正规网站。如果你正在工作或学学习,而你的网站使用了该 IP:算你倒霉,连带损害。请向首席军械师投诉。',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: '这个诊断工具究竟在做什么?',
|
|
134
|
+
level: 3,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: '该工具执行分三个步骤的技术分析,以识别您的 ISP 是否正在应用选择性 IP 地址封锁:',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
columns: 3,
|
|
143
|
+
items: [
|
|
144
|
+
{
|
|
145
|
+
title: 'Ping Google',
|
|
146
|
+
description: '我们检查您是否有“脉搏”。如果 Google 无法加载,问题可能是您没交 Wi-Fi 费。这是基准连接测试。',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
title: 'Ping Cloudflare',
|
|
150
|
+
description: '我们尝试访问 1.1.1.1。这是西班牙封锁行动的“矿井里的金丝雀”,也是司法封锁的主要目标。',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
title: '结论',
|
|
154
|
+
description: '如果 Google 工作正常而 Cloudflare 失败,那么显而易见:您的 ISP 正在对 Cloudflare 应用选择性 IP 封锁。',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: '动态封锁的影响',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'comparative',
|
|
165
|
+
columns: 3,
|
|
166
|
+
items: [
|
|
167
|
+
{
|
|
168
|
+
title: '误报',
|
|
169
|
+
description: '如果公司网站、个人博客和政府服务与未经授权的流媒体服务器共享 IP,它们可能会停止工作。',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
title: 'IP 过滤',
|
|
173
|
+
description: '与 DNS 封锁不同,IP 过滤在网络层级阻止连接,这使得仅更改 DNS 不足以解决问题。',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
title: '缺乏透明度',
|
|
177
|
+
description: '通常,用户只会看到“超时”错误,而不知道问题出在他们的连接上还是 ISP 的主动封锁上。',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'title',
|
|
183
|
+
text: '没人想回答的问题',
|
|
184
|
+
level: 3,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'list',
|
|
188
|
+
items: [
|
|
189
|
+
'<strong>使用这个是非法的吗?</strong> 不。Ping 服务器就像看商店橱窗一样合法。该工具是一种被动网络诊断。它不破解加密,不破解密码,也不访问受保护的内容。它只是告诉你为什么无法访问常用的网站。',
|
|
190
|
+
'<strong>如何修复它?</strong> 如果您面临主动封锁,更改 DNS 已不再有效(他们知道所有的技巧)。目前唯一真正的解决方案是 <strong>VPN</strong>。通过加密您的流量,您的 ISP 无法看到您请求的内容或向谁请求,因此无法“有选择性地”(或错误地)封锁您。',
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
type: 'title',
|
|
195
|
+
text: '主播模式 / OBS 插件',
|
|
196
|
+
level: 3,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'paragraph',
|
|
200
|
+
html: '您是主播并想在直播中实时展示审查状态吗?我们创建了一个特殊的极简模式,具有透明背景(支持色键)并每 5 分钟自动刷新一次。',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: 'list',
|
|
204
|
+
items: [
|
|
205
|
+
'<strong>第一步:</strong>在 OBS 中添加一个新的<strong>浏览器</strong>源。',
|
|
206
|
+
'<strong>第二步:</strong>使用此 URL:<code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
|
|
207
|
+
'<strong>第三步:</strong>完成!将出现一个大图标(绿色/红色),指示您的连接是洁净的还是正遭受司法攻击。',
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
type: 'tip',
|
|
212
|
+
title: '法律声明',
|
|
213
|
+
html: '<p>此工具与任何体育实体均无关联,不提供访问受保护内容的便利,也不绕过技术保护措施 (DRM)。它只是通知用户其互联网连接被人为降级。</p>',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
ui: {
|
|
217
|
+
faqTitle: '常见问题',
|
|
218
|
+
bibliographyTitle: '参考资料与背景',
|
|
219
|
+
scanning: '正在扫描矩阵...',
|
|
220
|
+
seekingBlocks: '正在您的光纤中搜索具体封锁...',
|
|
221
|
+
blockedTitle: '封锁中...',
|
|
222
|
+
blockedDiagnosis: '诊断:“选择性审查”',
|
|
223
|
+
blockedReason: '我们检测到您的 ISP 存在干扰。Cloudflare 或 DNS 正在被操纵。',
|
|
224
|
+
noInternetTitle: '无连接',
|
|
225
|
+
noInternetReason: '看来您无法访问互联网。请检查您的网线或账单。',
|
|
226
|
+
successTitle: '你是自由的',
|
|
227
|
+
successReason: '您的连接看起来很洁净。如果有全局封锁,它们并未影响到您。',
|
|
228
|
+
retryBtn: '再次挑衅司法',
|
|
229
|
+
authorNoteTitle: '作者注:',
|
|
230
|
+
authorNoteText: '由于我并未受到 Tebas 的“黑手”影响,因此无法完整测试此工具。如果您想帮助我改进诊断,请与我联系。',
|
|
231
|
+
consoleHeader: 'TEBAS_OS v3.2.0',
|
|
232
|
+
statusNegotiating: '正在与您的路由器协商...',
|
|
233
|
+
statusDodging: '正在规避法院通告...',
|
|
234
|
+
statusCheckingPirate: '正在检查您是否是海盗(眨眼)...',
|
|
235
|
+
statusPinging: '正在 Ping Google 以确认您的存在...',
|
|
236
|
+
statusConsulting: '正在咨询共享 IP 神谕...',
|
|
237
|
+
statusCheckingFee: '正在检查 Tebas 是否支付了自由职业者费用...',
|
|
238
|
+
statusCalculating: '正在计算赢得彩票的概率...',
|
|
239
|
+
statusDeciphering: '正在尝试解读您的 ISP 合同...',
|
|
240
|
+
logStarted: "正在启动自主协议 'TEBAS_WATCH'...",
|
|
241
|
+
logDetecting: '> 正在检测 ISP 和基础连接...',
|
|
242
|
+
logIspFound: '> 检测到 ISP: ',
|
|
243
|
+
logConnError: '> 基础连接错误',
|
|
244
|
+
logDnsCross: '> 正在执行 DNS 数据交叉检查 (DoH vs 本地)...',
|
|
245
|
+
logDnsGoogle: '> 真实 DNS (Google): ',
|
|
246
|
+
logDnsPoisoned: '> 警报:检测到中毒的 DNS。',
|
|
247
|
+
logDnsNoDoh: '> DoH 不可用,跳过 DNS 交叉检查。',
|
|
248
|
+
logLaunchingProbes: '> 正在对关键目标启动探测...',
|
|
249
|
+
logIpBlocked: '> 目标 {ip}:无响应 (疑似 IP 封锁)',
|
|
250
|
+
logIpActive: '> 目标 {ip}:活跃',
|
|
251
|
+
logAlertInterference: '!!! 司法干预警报 !!!',
|
|
252
|
+
logNoInternet: '无法访问互联网',
|
|
253
|
+
logClean: '连接洁净。请尽情享受。',
|
|
254
|
+
logDiagError: '诊断错误',
|
|
255
|
+
},
|
|
256
|
+
};
|
|
@@ -16,6 +16,18 @@ export const tebasCheck: StreamingToolEntry<TebasCheckUI> = {
|
|
|
16
16
|
es: () => import('./i18n/es').then((m) => m.content),
|
|
17
17
|
en: () => import('./i18n/en').then((m) => m.content),
|
|
18
18
|
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
19
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
20
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
22
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
23
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
24
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
25
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
26
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
27
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
28
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
29
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
30
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
19
31
|
},
|
|
20
32
|
};
|
|
21
33
|
|