Инструменты пользователя

Инструменты сайта


сингапур_gemini

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
сингапур_gemini [2026/10/22 09:23] – bonterkozсингапур_gemini [2026/10/22 11:55] (текущий) – bonterkoz
Строка 11: Строка 11:
 </code> </code>
 <code> <code>
- 
 #!/usr/bin/env bash #!/usr/bin/env bash
 # geocheck.sh — как разные сервисы видят геолокацию IP вашего VPS # geocheck.sh — как разные сервисы видят геолокацию IP вашего VPS
Строка 41: Строка 40:
 g() { eval "$C \"$1\""; } g() { eval "$C \"$1\""; }
 row() { printf "%-22s %-6s %-22s %s\n" "$1" "${2:-?}" "${3:-}" "${4:-}"; } row() { printf "%-22s %-6s %-22s %s\n" "$1" "${2:-?}" "${3:-}" "${4:-}"; }
 +
 +# ISO alpha-3 -> alpha-2 для стран, которые чаще всего встречаются в проверках
 +a3to2() {
 +  case "$1" in
 +    SGP) echo SG;; RUS) echo RU;; CHN) echo CN;; HKG) echo HK;; MAC) echo MO;;
 +    IRN) echo IR;; PRK) echo KP;; CUB) echo CU;; SYR) echo SY;; BLR) echo BY;;
 +    NLD) echo NL;; DEU) echo DE;; FIN) echo FI;; FRA) echo FR;; GBR) echo GB;;
 +    USA) echo US;; CAN) echo CA;; JPN) echo JP;; KOR) echo KR;; TWN) echo TW;;
 +    CYP) echo CY;; TUR) echo TR;; KAZ) echo KZ;; ARM) echo AM;; GEO) echo GE;;
 +    POL) echo PL;; SWE) echo SE;; CHE) echo CH;; AUT) echo AT;; LVA) echo LV;;
 +    LTU) echo LT;; EST) echo EE;; MDA) echo MD;; UKR) echo UA;; ARE) echo AE;;
 +    IND) echo IN;; IDN) echo ID;; MYS) echo MY;; THA) echo TH;; VNM) echo VN;;
 +    *) echo "$1";;
 +  esac
 +}
 +
 +# Регионы, где Gemini официально не работает
 +GEMINI_BLOCKED=" RU CN HK MO IR KP CU SY BY "
  
 IP="${TARGET:-$(g https://api.ipify.org)}" IP="${TARGET:-$(g https://api.ipify.org)}"
Строка 61: Строка 78:
 # ifconfig.co — использует базу MaxMind GeoLite2 # ifconfig.co — использует базу MaxMind GeoLite2
 j=$(g "https://ifconfig.co/json?ip=$IP") j=$(g "https://ifconfig.co/json?ip=$IP")
-row "MaxMind (ifconfig.co)" "$(jq -r .country_iso <<<"$j" 2>/dev/null)" "$(jq -r .city <<<"$j" 2>/dev/null)" "$(jq -r '"AS\(.asn // "") \(.asn_org // "")"' <<<"$j" 2>/dev/null)"+row "MaxMind (ifconfig.co)" "$(jq -r '.country_iso // empty' <<<"$j" 2>/dev/null)" "$(jq -r '.city // empty' <<<"$j" 2>/dev/null)" "$(jq -r 'if .asn then "\(.asn) \(.asn_org // "")" else empty end' <<<"$j" 2>/dev/null)"
  
 # ipapi.co # ipapi.co
Строка 73: Строка 90:
 # ip.sb # ip.sb
 j=$(g "https://api.ip.sb/geoip/$IP") j=$(g "https://api.ip.sb/geoip/$IP")
-row "ip.sb" "$(jq -r .country_code <<<"$j" 2>/dev/null)" "$(jq -r .city <<<"$j" 2>/dev/null)" "$(jq -r '"AS\(.asn // "") \(.organization // "")"' <<<"$j" 2>/dev/null)"+row "ip.sb" "$(jq -r .country_code <<<"$j" 2>/dev/null)" "$(jq -r '.city // ""' <<<"$j" 2>/dev/null)" "$(jq -r '"AS\(.asn // "") \(.organization // "")"' <<<"$j" 2>/dev/null)"
  
 # WHOIS — страна, на которую зарегистрирован блок # WHOIS — страна, на которую зарегистрирован блок
Строка 91: Строка 108:
   row "YouTube (Google)" "${yt:-нет данных}"   row "YouTube (Google)" "${yt:-нет данных}"
  
-  # Gemini — эвристика, Google может поменять разметку +  # Gemini: регион берём из страницы (alpha-3), решение — по списку 
-  gm=$(g "https://gemini.google.com") +  # неподдерживаемых стран. Старый маркер 45631641 — только как доп. признак. 
-  if grep -q '45631641,null,true' <<<"$gm"; then gs="доступен" +  gm=$(eval "curl $FAM -sL --max-time 15 -A \"$UA\" -H 'Accept-Language: en-US,en;q=0.9' https://gemini.google.com/app") 
-  elif [ -z "$gm" ]; then gs="нет ответа" +  gc3=$(grep -o ',2,1,200,"[A-Z]\{3\}"' <<<"$gm" | head -1 | grep -o '[A-Z]\{3\}') 
-  else gs="ВЕРОЯТНО НЕДОСТУПЕН"; fi +  gc=""; [ -n "$gc3" ] && gc=$(a3to2 "$gc3") 
-  gc=$(grep -o ',2,1,200,"[A-Z]\{3\}"' <<<"$gm" | head -1 | grep -o '[A-Z]\{3\}') + 
-  row "Gemini" "${gc:-?}" "$gs" "(эвристика)"+  if [ -z "$gm" ]; then 
 +    gs="нет ответа" 
 +  elif grep -qiE "not (yet )?available in your (country|region)|isn.t (yet )?available in your (country|region)|недоступ.{0,6} в вашей (стране|регионе)" <<<"$gm"; then 
 +    gs="НЕДОСТУПЕН" 
 +  elif [ -n "$gc" ] && [[ "$GEMINI_BLOCKED" == *" $gc "* ]]; then 
 +    gs="НЕДОСТУПЕН (регион)" 
 +  elif grep -q '45631641,null,true' <<<"$gm" || [ -n "$gc" ]; then 
 +    gs="доступен" 
 +  else 
 +    gs="не определено" 
 +  fi 
 +  row "Gemini" "${gc:-?}" "$gs" "${gc3:+(код Google: $gc3)}"
 fi fi
  
 echo "============================================================" echo "============================================================"
-echo "Если базы показывают SG, а YouTube/Gemini — CN: виновата" +echo "Если базы показывают SG, а YouTube/Gemini — RU/CN/HK и т.п.:" 
-echo "геолокация Google -> просите провайдера сменить IP или подать" +echo "виновата геолокация Google -> просите провайдера сменить IP" 
-echo "исправление (geofeed / форма Google)." +echo "или подать исправление (geofeed / форма Google)." 
-echo "Если WHOIS = CN: блок зарегистрирован в Китае, надёжнее сменить IP."+echo "Если WHOIS = CN/RU: блок зарегистрирован там, надёжнее сменить IP." 
 +echo "Gemini также смотрит страну Google-аккаунта, не только IP."
 </code> </code>
сингапур_gemini.txt · Последнее изменение: — bonterkoz

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 4.0 International
CC Attribution 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki