@jjlmoya/utils-streaming 1.1.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/component.astro +5 -7
- package/src/tool/sorteo/i18n/de.ts +256 -0
- package/src/tool/sorteo/i18n/en.ts +3 -0
- package/src/tool/sorteo/i18n/es.ts +3 -0
- package/src/tool/sorteo/i18n/fr.ts +3 -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/sorteo/ui.ts +3 -0
- package/src/tool/tebasCheck/component.astro +4 -6
- package/src/tool/tebasCheck/i18n/de.ts +256 -0
- package/src/tool/tebasCheck/i18n/en.ts +2 -0
- package/src/tool/tebasCheck/i18n/es.ts +2 -0
- package/src/tool/tebasCheck/i18n/fr.ts +2 -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
- package/src/tool/tebasCheck/types.ts +3 -1
|
@@ -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 = 'wykrywacz-blokad-isp';
|
|
6
|
+
const title = 'Wykrywacz Blokad ISP Tebas Check';
|
|
7
|
+
const description = 'Narzędzie diagnostyczne do wykrywania nielegalnych blokad współdzielonych adresów IP Cloudflare przez hiszpańskich dostawców Internetu.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Co to jest Tebas-Check?',
|
|
12
|
+
answer: 'To narzędzie diagnostyczne, które próbuje połączyć się ze znanymi adresami IP Cloudflare, które zostały zablokowane sądownie w Hiszpanii, aby uniemożliwić dostęp do pirackich transmisji. Problem polega na tym, że blokując współdzielony adres IP, "psuje się" tysiące legalnych stron internetowych.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Dlaczego mój dostawca Internetu blokuje adres IP Cloudflare?',
|
|
16
|
+
answer: 'Z powodu dynamicznych środków zapobiegawczych, w ramach których dostawcy usług internetowych muszą blokować adresy IP serwerów rzekomo nadających chronione treści. Korzystając z Cloudflare (CDN), wiele stron internetowych współdzieli ten sam adres IP, co powoduje szkody uboczne dla niewinnych użytkowników.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Jak działa ten test?',
|
|
20
|
+
answer: 'Próbujemy załadować mały zasób z adresów IP oznaczonych jako zablokowane. Jeśli połączenie nie powiedzie się z powodu "Przekroczenia czasu" (Timeout) lub resetowania połączenia tylko na tych adresach IP, jest to jasny wskaźnik, że dostawca stosuje filtrowanie IP.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Czy mogę obejść tę blokadę?',
|
|
24
|
+
answer: 'Blokady IP są trudne do obejścia jedynie poprzez zmianę DNS. Rozwiązanie zazwyczaj polega na korzystaniu z VPN, przeglądarki Tor lub czekaniu, aż Cloudflare przypisze nowy adres IP do legalnej usługi, którą próbujesz odwiedzić.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Wyłącz VPN lub serwery proxy',
|
|
31
|
+
text: 'Aby test był dokładny, musisz korzystać z bezpośredniego połączenia routera (światłowód lub 4G/5G) bez warstw pośrednich.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Rozpocznij skanowanie',
|
|
35
|
+
text: 'Kliknij przycisk diagnostyki. Narzędzie wyśle pakiety testowe do adresów IP podejrzanych o blokowanie.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Zinterpretuj wyniki',
|
|
39
|
+
text: 'Jeśli widzisz wyniki w kolorze czerwonym, oznacza to, że dany adres IP jest nieosiągalny. Jeśli jest zielony, ruch odbywa się normalnie.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Generuj raport',
|
|
43
|
+
text: 'Możesz wykorzystać wyniki do zgłoszenia incydentu swojemu dostawcy Internetu, jeśli blokuje on legalne usługi.',
|
|
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: 'EUR' },
|
|
78
|
+
inLanguage: 'pl',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Często Zadawane Pytania',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Referencje i Kontekst',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Cloudflare: Zrozumienie blokowania IP',
|
|
91
|
+
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Hiszpańskie przepisy dotyczące dynamicznego blokowania',
|
|
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: 'Dlaczego wszystko przestało działać?',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Witamy w cudownym świecie <strong>"Sprawiedliwości Zapobiegawczej"</strong>. Jeśli jesteś tu w niedzielne popołudnie i legalne strony internetowe przestały się ładować, podczas gdy Twitter działa idealnie, prawdopodobnie jesteś ofiarą uboczną krucjaty przeciwko nielegalnym transmisjom piłkarskim.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'W Hiszpanii sędziowie przekazali "czerwony przycisk" niektórym organizacjom sportowym. Ten przycisk pozwala im blokować adresy IP w czasie rzeczywistym, bez bezpośredniego nadzoru sądowego minuta po minucie. Problem polega na tym, że celują jak z odpustowej wiatrówki i często trafiają w serwery współdzielone, na których oprócz "nielegalnych meczów" znajdują się szpitale, uniwersytety lub Twój ulubiony blog kulinarny.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'Teoria Płonącego Budynku',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Wyobraź sobie, że nielegalny stream jest nadawany z mieszkania 4B w wieżowcu. Logicznym rozwiązaniem byłoby zapukanie do drzwi 4B i odcięcie prądu, prawda?',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Otóż nie. Obecnym rozwiązaniem jest <strong>wysadzenie fundamentów całego budynku</strong>.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Blokując adres IP usługi takiej jak Cloudflare, dostawca internetu nie tylko eliminuje pirata, ale także pozostałe 50 000 legalnych stron internetowych, które współdzielą ten sam adres cyfrowy. Jeśli pracowałeś lub uczyłeś się, a Twoja strona korzystała z tego adresu IP: pech, szkoda uboczna. Reklamacje proszę składać do głównego rusznikarza.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: 'Co dokładnie robi to narzędzie diagnostyczne?',
|
|
134
|
+
level: 3,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'To narzędzie przeprowadza analizę techniczną w trzech krokach, aby zidentyfikować, czy Twój dostawca stosuje selektywne blokowanie adresów IP:',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
columns: 3,
|
|
143
|
+
items: [
|
|
144
|
+
{
|
|
145
|
+
title: 'Ping Google',
|
|
146
|
+
description: 'Sprawdzamy, czy masz puls. Jeśli Google się nie ładuje, problemem jest to, że nie zapłaciłeś za Wi-Fi. To podstawowy test łączności.',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
title: 'Ping Cloudflare',
|
|
150
|
+
description: 'Próbujemy dotrzeć do 1.1.1.1. To "kanarek w kopalni" blokowania w Hiszpanii i główny cel blokad sądowych.',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
title: 'Werdykt',
|
|
154
|
+
description: 'Jeśli Google działa, a Cloudflare zawodzi, sprawa jest jasna: Twój dostawca stosuje selektywne blokowanie adresu IP Cloudflare.',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Wpływ Dynamicznego Blokowania',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'comparative',
|
|
165
|
+
columns: 3,
|
|
166
|
+
items: [
|
|
167
|
+
{
|
|
168
|
+
title: 'Fałszywe Alarmy',
|
|
169
|
+
description: 'Strony firmowe, prywatne blogi i usługi rządowe mogą przestać działać, jeśli dzielą adres IP z nieautoryzowanym serwerem streamingowym.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
title: 'Filtrowanie IP',
|
|
173
|
+
description: 'W przeciwieństwie do blokowania DNS, filtrowanie IP uniemożliwia połączenie na poziomie sieci, co sprawia, że zmiana DNS nie wystarczy do rozwiązania problemu.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
title: 'Brak Przejrzystości',
|
|
177
|
+
description: 'Często użytkownik widzi tylko błąd "Timeout" bez wiedzy, czy problem leży w jego połączeniu, czy w aktywnej blokadzie dostawcy.',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'title',
|
|
183
|
+
text: 'Pytania, na które nikt nie chce odpowiedzieć',
|
|
184
|
+
level: 3,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'list',
|
|
188
|
+
items: [
|
|
189
|
+
'<strong>Czy używanie tego jest nielegalne?</strong> Nie. Pingowanie serwera jest tak samo nielegalne jak pat patrzenie na wystawę sklepową. To narzędzie to pasywna diagnostyka sieci. Nie łamie szyfrowania, nie łamie haseł i nie uzyskuje dostępu do chronionych treści. Mówi Ci tylko, dlaczego nie możesz uzyskać dostępu do swoich zwykłych stron internetowych.',
|
|
190
|
+
'<strong>Jak to naprawić?</strong> Jeśli masz aktywną blokadę, zmiana DNS już nie pomaga (znają wszystkie triki). Jedynym realnym dziś rozwiązaniem jest <strong>VPN</strong>. Szyfrując ruch, dostawca nie widzi, o co prosisz ani kogo, a zatem nie może Cię zablokować "selektywnie" (lub przez pomyłkę).',
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
type: 'title',
|
|
195
|
+
text: 'Tryb Streamera / Widget OBS',
|
|
196
|
+
level: 3,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'paragraph',
|
|
200
|
+
html: 'Jesteś streamerem i chcesz pokazywać stan cenzury w czasie rzeczywistym na swoim streamie? Stworzyliśmy specjalny ultra-minimalistyczny tryb z przezroczystym tłem (gotowy do kluczowania) i automatycznym odświeżaniem co 5 minut.',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: 'list',
|
|
204
|
+
items: [
|
|
205
|
+
'<strong>Krok 1:</strong> Dodaj nowe źródło <strong>Przeglądarka</strong> w OBS.',
|
|
206
|
+
'<strong>Krok 2:</strong> Użyj tego adresu URL: <code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
|
|
207
|
+
'<strong>Krok 3:</strong> Gotowe! Pojawi się duża ikona (zielona/czerwona) wskazująca, czy Twoje połączenie jest czyste, czy pod atakiem sądowym.',
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
type: 'tip',
|
|
212
|
+
title: 'Nota Prawna',
|
|
213
|
+
html: '<p>To narzędzie nie jest powiązane z żadną organizacją sportową, nie ułatwia dostępu do chronionych treści i nie omija technologicznych środków ochrony (DRM). Po prostu informuje użytkownika, że jego połączenie internetowe jest sztucznie degradowane.</p>',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
ui: {
|
|
217
|
+
faqTitle: 'Często Zadawane Pytania',
|
|
218
|
+
bibliographyTitle: 'Referencje i Kontekst',
|
|
219
|
+
scanning: 'Skanowanie matrixa...',
|
|
220
|
+
seekingBlocks: 'Szukanie betonowych blokad w Twoim światłowodzie...',
|
|
221
|
+
blockedTitle: 'BLOKOWANIE...',
|
|
222
|
+
blockedDiagnosis: 'Diagnoza: "Cenzura Selektywna"',
|
|
223
|
+
blockedReason: 'Wykryliśmy zakłócenia u Twojego dostawcy Internetu. Cloudflare lub DNS są manipulowane.',
|
|
224
|
+
noInternetTitle: 'BRAK POŁĄCZENIA',
|
|
225
|
+
noInternetReason: 'Wygląda na to, że nie masz dostępu do Internetu. Sprawdź kabel lub rachunek.',
|
|
226
|
+
successTitle: 'JESTEŚ WOLNY',
|
|
227
|
+
successReason: 'Twoje połączenie wygląda na czyste. Jeśli istnieją blokady globalne, nie mają one na Ciebie wpływu.',
|
|
228
|
+
retryBtn: 'Ponownie sprowokuj wymiar sprawiedliwości',
|
|
229
|
+
authorNoteTitle: 'Nota od autora:',
|
|
230
|
+
authorNoteText: 'Nie byłem w stanie w pełni przetestować tego narzędzia, ponieważ nie dotknęła mnie "czarna ręka" Tebasa. Jeśli chcesz pomóc mi udoskonalić diagnostykę, skontaktuj się ze mną.',
|
|
231
|
+
consoleHeader: 'TEBAS_OS v3.2.0',
|
|
232
|
+
statusNegotiating: 'Negocjowanie z routerem...',
|
|
233
|
+
statusDodging: 'Unikanie okólnika sądowego...',
|
|
234
|
+
statusCheckingPirate: 'Sprawdzanie, czy jesteś piratem (mrugnięcie okiem)...',
|
|
235
|
+
statusPinging: 'Pingowanie Google, aby sprawdzić, czy istniejesz...',
|
|
236
|
+
statusConsulting: 'Konsultacja z wyrocznią współdzielonych IP...',
|
|
237
|
+
statusCheckingFee: 'Sprawdzanie, czy Tebas zapłacił składkę dla samozatrudnionych...',
|
|
238
|
+
statusCalculating: 'Obliczanie prawdopodobieństwa wygrania na loterii...',
|
|
239
|
+
statusDeciphering: 'Próba rozszyfrowania umowy z dostawcą...',
|
|
240
|
+
logStarted: "URUCHAMIANIE AUTONOMICZNEGO PROTOKOŁU 'TEBAS_WATCH'...",
|
|
241
|
+
logDetecting: '> Wykrywanie dostawcy i podstawowej łączności...',
|
|
242
|
+
logIspFound: '> Wykryto dostawcę: ',
|
|
243
|
+
logConnError: '> Błąd podstawowego połączenia',
|
|
244
|
+
logDnsCross: '> Wykonywanie krzyżowej kontroli danych DNS (DoH vs lokalne)...',
|
|
245
|
+
logDnsGoogle: '> Prawdziwy DNS (Google): ',
|
|
246
|
+
logDnsPoisoned: '> ALERT: Wykryto zatruty DNS.',
|
|
247
|
+
logDnsNoDoh: '> DoH niedostępny, pomijanie krzyżowej kontroli DNS.',
|
|
248
|
+
logLaunchingProbes: '> Uruchamianie sond na krytyczne cele...',
|
|
249
|
+
logIpBlocked: '> Cel {ip}: BRAK ODPOWIEDZI (Podejrzenie blokady IP)',
|
|
250
|
+
logIpActive: '> Cel {ip}: AKTYWNY',
|
|
251
|
+
logAlertInterference: '!!! ALERT INGERENCJI SĄDOWEJ !!!',
|
|
252
|
+
logNoInternet: 'BRAK DOSTĘPU DO INTERNETU',
|
|
253
|
+
logClean: 'CZYSTE POŁĄCZENIE. KORZYSTAJ.',
|
|
254
|
+
logDiagError: 'BŁĄD DIAGNOSTYCZNY',
|
|
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 = 'detetor-bloqueio-isp';
|
|
6
|
+
const title = 'Detetor de Bloqueios ISP Tebas Check';
|
|
7
|
+
const description = 'Ferramenta de diagnóstico para detetar bloqueios ilegítimos de IPs partilhados da Cloudflare por parte de operadoras espanholas.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'O que é o Tebas-Check?',
|
|
12
|
+
answer: 'É uma ferramenta de diagnóstico que tenta ligar-se a IPs conhecidos da Cloudflare que foram bloqueados judicialmente em Espanha para impedir o acesso a transmissões piratas. O problema é que, ao bloquear um IP partilhado, milhares de sites legítimos são "quebrados".',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Porque é que a minha operadora bloqueia um IP da Cloudflare?',
|
|
16
|
+
answer: 'Devido a medidas cautelares dinâmicas em que as operadoras devem bloquear IPs de servidores que supostamente emitem conteúdo protegido. Ao usar a Cloudflare (CDN), muitos sites partilham o mesmo IP, causando danos colaterais a utilizadores inocentes.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Como funciona o teste?',
|
|
20
|
+
answer: 'Tentamos carregar um pequeno recurso a partir dos IPs sinalizados como bloqueados. Se a ligação falhar devido a "Timeout" ou resets de ligação apenas nesses IPs, é um indicador claro de que a sua operadora está a aplicar uma filtragem de IP.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Posso contornar este bloqueio?',
|
|
24
|
+
answer: 'Os bloqueios de IP são difíceis de contornar apenas mudando o DNS. A solução passa geralmente pelo uso de uma VPN, do navegador Tor, ou esperar que a Cloudflare atribua um novo IP ao serviço legítimo que tenta visitar.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Desativar VPN ou Proxies',
|
|
31
|
+
text: 'Para que o teste seja preciso, deve usar a ligação direta do seu router (Fibra ou 4G/5G) sem camadas intermédias.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Iniciar o scan',
|
|
35
|
+
text: 'Clique no botão de diagnóstico. A ferramenta enviará pacotes de teste para os IPs sob suspeita de bloqueio.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Interpretar os resultados',
|
|
39
|
+
text: 'Se vir resultados a vermelho, significa que esse IP está inacessível. Se estiver a verde, o seu tráfego flui normalmente.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Gerar relatório',
|
|
43
|
+
text: 'Pode usar os resultados para reportar o incidente à sua operadora se estiverem a bloquear serviços legítimos.',
|
|
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: 'EUR' },
|
|
78
|
+
inLanguage: 'pt',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Perguntas Frequentes',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Referências e Contexto',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{
|
|
90
|
+
name: 'Cloudflare: Compreender o bloqueio de IP',
|
|
91
|
+
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Regulamentações espanholas de bloqueio dinâmico',
|
|
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: 'Porque é que tudo parou de funcionar?',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Bem-vindo ao maravilhoso mundo da <strong>"Justiça Preventiva"</strong>. Se está aqui num domingo à tarde e sites legítimos deixaram de carregar enquanto o Twitter funciona perfeitamente, é provavelmente uma vítima colateral da cruzada contra as transmissões de futebol ilegais.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'Em Espanha, os juízes entregaram um "botão vermelho" a certas entidades desportivas. Este botão permite-lhes bloquear endereços IP em tempo real sem supervisão judicial direta minuto a minuto. O problema é que eles apontam com uma pressão de ar de feira e muitas vezes acertam em servidores partilhados onde, além de "jogos ilegais", residem hospitais, universidades ou o seu blog de culinária favorito.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'A Teoria do Edifício em Chamas',
|
|
117
|
+
level: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Imagine que um streaming ilegal é transmitido a partir do apartamento 4B de um arranha-céus. A solução lógica seria bater à porta do 4B e cortar-lhe a luz, certo?',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: 'Pois não. A solução atual é <strong>explodir as fundações do edifício inteiro</strong>.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Ao bloquear o IP de um serviço como a Cloudflare, o fornecedor de internet não só deita abaixo o pirata, mas também os outros 50.000 sites legítimos que partilhavam o mesmo endereço digital. Se estava a trabalhar ou a estudar e o seu site usava esse IP: azar, dano colateral. Reclame com o mestre armeiro.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: 'O que faz exatamente esta ferramenta de diagnóstico?',
|
|
134
|
+
level: 3,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Esta ferramenta realiza uma análise técnica em três passos para identificar se a sua operadora está a aplicar bloqueios seletivos de endereços IP:',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
columns: 3,
|
|
143
|
+
items: [
|
|
144
|
+
{
|
|
145
|
+
title: 'Ping ao Google',
|
|
146
|
+
description: 'Verificamos se tem pulso. Se o Google não carregar, o problema é que não pagou a conta do Wi-Fi. Este é o teste de conectividade base.',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
title: 'Ping à Cloudflare',
|
|
150
|
+
description: 'Tentamos chegar a 1.1.1.1. É o "canário na mina" dos bloqueios em Espanha e o principal alvo dos bloqueios judiciais.',
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
title: 'Veredito',
|
|
154
|
+
description: 'Se o Google funciona e a Cloudflare falha, é claríssimo: a sua operadora está a aplicar um bloqueio IP seletivo à Cloudflare.',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Impacto do Bloqueio Dinâmico',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'comparative',
|
|
165
|
+
columns: 3,
|
|
166
|
+
items: [
|
|
167
|
+
{
|
|
168
|
+
title: 'Falsos Positivos',
|
|
169
|
+
description: 'Sites de empresas, blogs pessoais e serviços governamentais podem deixar de funcionar se partilharem o IP com um servidor de streaming não autorizado.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
title: 'Filtragem por IP',
|
|
173
|
+
description: 'Ao contrário do bloqueio por DNS, a filtragem por IP impede a ligação ao nível da rede, o que torna a mudança de DNS insuficiente para resolver o problema.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
title: 'Falta de Transparência',
|
|
177
|
+
description: 'Muitas vezes, o utilizador apenas vê um erro de "Timeout" sem saber se o problema é da sua ligação ou de um bloqueio ativo da operadora.',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'title',
|
|
183
|
+
text: 'Perguntas que ninguém quer responder',
|
|
184
|
+
level: 3,
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: 'list',
|
|
188
|
+
items: [
|
|
189
|
+
'<strong>É ilegal usar isto?</strong> Não. Fazer um ping a um servidor é tão ilegal como olhar para uma montra. Esta ferramenta é um diagnóstico de rede passivo. Não quebra encriptação, não descobre passwords e não acede a conteúdo protegido. Apenas lhe diz porque não consegue aceder aos seus sites habituais.',
|
|
190
|
+
'<strong>Como é que resolvo isto?</strong> Se tiver um bloqueio ativo, mudar os DNS já não ajuda (eles conhecem todos os truques). A única solução real hoje em dia é uma <strong>VPN</strong>. Ao encriptar o seu tráfego, a sua operadora não consegue ver o que está a pedir nem a quem e, por isso, não pode bloqueá-lo "seletivamente" (nem por erro).',
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
type: 'title',
|
|
195
|
+
text: 'Modo Streamer / Widget OBS',
|
|
196
|
+
level: 3,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
type: 'paragraph',
|
|
200
|
+
html: 'É streamer e quer mostrar o estado da censura em tempo real na sua transmissão? Criámos um modo especial ultra-minimalista, com fundo transparente (chroma-ready) e atualização automática a cada 5 minutos.',
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: 'list',
|
|
204
|
+
items: [
|
|
205
|
+
'<strong>Passo 1:</strong> Adicione uma nova fonte de <strong>Navegador</strong> no OBS.',
|
|
206
|
+
'<strong>Passo 2:</strong> Use este URL: <code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
|
|
207
|
+
'<strong>Passo 3:</strong> Pronto! Aparecerá um ícone grande (Verde/Vermelho) indicando se a sua ligação está limpa ou sob ataque judicial.',
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
type: 'tip',
|
|
212
|
+
title: 'Aviso Legal',
|
|
213
|
+
html: '<p>Esta ferramenta não tem afiliação com nenhuma entidade desportiva, não facilita o acesso a conteúdo protegido e não contorna medidas tecnológicas de proteção (DRM). Simplesmente informa o utilizador de que a sua ligação à internet está artificialmente degradada.</p>',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
ui: {
|
|
217
|
+
faqTitle: 'Perguntas Frecuentes',
|
|
218
|
+
bibliographyTitle: 'Referências e Contexto',
|
|
219
|
+
scanning: 'A ler a matrix...',
|
|
220
|
+
seekingBlocks: 'A procurar blocos de betão na sua fibra...',
|
|
221
|
+
blockedTitle: 'A BLOQUEAR...',
|
|
222
|
+
blockedDiagnosis: 'Diagnóstico: "Censura Seletiva"',
|
|
223
|
+
blockedReason: 'Detetámos interferência na sua operadora. A Cloudflare ou os DNS estão a ser manipulados.',
|
|
224
|
+
noInternetTitle: 'SEM LIGAÇÃO',
|
|
225
|
+
noInternetReason: 'Parece que não tem acesso à internet. Verifique o cabo ou a fatura.',
|
|
226
|
+
successTitle: 'ESTÁ LIVRE',
|
|
227
|
+
successReason: 'A sua ligação parece limpa. Se houver bloqueios globais, não o estão a afetar.',
|
|
228
|
+
retryBtn: 'Provocar a justiça novamente',
|
|
229
|
+
authorNoteTitle: 'Nota do Autor:',
|
|
230
|
+
authorNoteText: 'Não pude testar a fundo esta utilidade porque não sou afetado pela "mão negra" de Tebas. Se quiser ajudar-me a melhorar o diagnóstico, contacte-me.',
|
|
231
|
+
consoleHeader: 'TEBAS_OS v3.2.0',
|
|
232
|
+
statusNegotiating: 'A negociar com o seu router...',
|
|
233
|
+
statusDodging: 'A esquivar-se da circular do tribunal...',
|
|
234
|
+
statusCheckingPirate: 'A verificar se é um pirata (piscadela)...',
|
|
235
|
+
statusPinging: 'A fazer ping ao Google para ver se existe...',
|
|
236
|
+
statusConsulting: 'A consultar o oráculo do IP partilhado...',
|
|
237
|
+
statusCheckingFee: 'A rever se o Tebas pagou a quota de trabalhador por conta própria...',
|
|
238
|
+
statusCalculating: 'A calcular a probabilidade de ganhar a lotaria...',
|
|
239
|
+
statusDeciphering: 'A tentar decifrar o contrato com a sua operadora...',
|
|
240
|
+
logStarted: "A INICIAR PROTOCOLO AUTÓNOMO 'TEBAS_WATCH'...",
|
|
241
|
+
logDetecting: '> A detetar operadora e conectividade básica...',
|
|
242
|
+
logIspFound: '> Operadora detetada: ',
|
|
243
|
+
logConnError: '> Erro de ligação básica',
|
|
244
|
+
logDnsCross: '> A executar cruzamento de dados DNS (DoH vs Local)...',
|
|
245
|
+
logDnsGoogle: '> DNS Real (Google): ',
|
|
246
|
+
logDnsPoisoned: '> ALERTA: DNS envenenado detetado.',
|
|
247
|
+
logDnsNoDoh: '> DoH indisponível, a saltar cruzamento DNS.',
|
|
248
|
+
logLaunchingProbes: '> A lançar sondas sobre alvos críticos...',
|
|
249
|
+
logIpBlocked: '> Alvo {ip}: SEM RESPOSTA (Suspeita de bloqueio IP)',
|
|
250
|
+
logIpActive: '> Alvo {ip}: ATIVO',
|
|
251
|
+
logAlertInterference: '!!! ALERTA DE INTERFERÊNCIA JUDICIAL !!!',
|
|
252
|
+
logNoInternet: 'SEM ACESSO À INTERNET',
|
|
253
|
+
logClean: 'LIGAÇÃO LIMPA. DESFRUTE.',
|
|
254
|
+
logDiagError: 'ERRO DE DIAGNÓSTICO',
|
|
255
|
+
},
|
|
256
|
+
};
|