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

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


сингапур_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 
- IP: 192.67.63.55 +# geocheck.sh — как разные сервисы видят геолокацию IP вашего VPS 
-============================================================ +# Запуск:  bash geocheck.sh        (IPv4) 
-Источник       Страна Город             ASN / Организация +#          bash geocheck.sh -6     (IPv6) 
------------------------------------------------------------- +#          bash geocheck.sh 1.2.3.4  (проверить конкретный IP, без тестов Google) 
-ipinfo.io              SG     Singapore              AS149020 WebHorizon Internet Services + 
-ip-api.com             SG     Singapore               +set -u 
-MaxMind (ifconfig.co)  DE     Frankfurt am Main      ASAS3320 Deutsche Telekom AG +FAM="-4"; TARGET="" 
-ipapi.co               SG     Singapore              AS149020 WebHorizon Internet Services +case "${1:-}" in 
-ipwho.is               SG     Singapore              AS149020 Abc-Hosters LLC +  -6) FAM="-6" ;; 
-ip.sb                  SG     Singapore              AS149020 WebHorizon Internet Services +  -4|"") ;; 
-WHOIS (регистрация) US                            WEBHORIZON +  *) TARGET="$1" ;; 
------------------------------------------------------------- +esac 
- Как видят реальные сервисы (с этого VPS): + 
-Cloudflare             SG                             +UA="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36" 
-YouTube (Google)       нет данных                         +C="curl $FAM -s --max-time 10 -A \"$UA\"" 
-Gemini                 CHN    ВЕРОЯТНО НЕДОСТУПЕН (эвристика) + 
-============================================================ +need() { command -v "$1" >/dev/null 2>&1; } 
-Если базы показывают SG, а YouTube/Gemini — CN: виновата +if ! need jq || ! need whois; then 
-геолокация Google -> просите провайдера сменить IP или подать +  echo "Ставлю jq и whois..." 
-исправление (geofeed / форма Google). +  if need apt-get; then apt-get update -qq && apt-get install -y -qq jq whois >/dev/null 
-Если WHOIS = CN: блок зарегистрирован в Китае, надёжнее сменить IP+  elif need dnf; then dnf install -y -q jq whois >/dev/null 
 +  elif need yum; then yum install -y -q jq whois >/dev/null 
 +  elif need apk; then apk add -q jq whois >/dev/null 
 +  fi 
 +fi 
 + 
 +g() { eval "$C \"$1\""; } 
 +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)}" 
 +[ -z "$IP" ] && { echo "Не удалось определить внешний IP"; exit 1; } 
 + 
 +echo "============================================================" 
 +echo " IP: $IP" 
 +echo "============================================================" 
 +printf "%-22s %-6s %-22s %s\n" "Источник" "Страна" "Город" "ASN / Организация" 
 +echo "------------------------------------------------------------" 
 + 
 +# ipinfo.io (собственная база) 
 +j=$(g "https://ipinfo.io/$IP/json") 
 +row "ipinfo.io" "$(jq -r .country <<<"$j" 2>/dev/null)" "$(jq -r .city <<<"$j" 2>/dev/null)" "$(jq -r .org <<<"$j" 2>/dev/null)" 
 + 
 +# ip-api.com (бесплатно только http) 
 +j=$(g "http://ip-api.com/json/$IP?fields=countryCode,city,as,isp") 
 +row "ip-api.com" "$(jq -r .countryCode <<<"$j" 2>/dev/null)" "$(jq -r .city <<<"$j" 2>/dev/null)" "$(jq -r .as <<<"$j" 2>/dev/null)" 
 + 
 +# ifconfig.co — использует базу MaxMind GeoLite2 
 +j=$(g "https://ifconfig.co/json?ip=$IP") 
 +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 
 +j=$(g "https://ipapi.co/$IP/json/") 
 +row "ipapi.co" "$(jq -r .country_code <<<"$j" 2>/dev/null)" "$(jq -r .city <<<"$j" 2>/dev/null)" "$(jq -r '"\(.asn // "") \(.org // "")"' <<<"$j" 2>/dev/null)" 
 + 
 +# ipwho.is 
 +j=$(g "https://ipwho.is/$IP") 
 +row "ipwho.is" "$(jq -r .country_code <<<"$j" 2>/dev/null)" "$(jq -r .city <<<"$j" 2>/dev/null)" "$(jq -r '"AS\(.connection.asn // "") \(.connection.org // "")"' <<<"$j" 2>/dev/null)" 
 + 
 +# ip.sb 
 +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)" 
 + 
 +# WHOIS — страна, на которую зарегистрирован блок 
 +W=$(whois "$IP" 2>/dev/null) 
 +row "WHOIS (регистрация)" "$(grep -im1 '^country:' <<<"$W" | awk '{print toupper($2)}')" "" "$(grep -im1 -E '^(netname|descr):' <<<"$W" | cut -d: -f2- | xargs)" 
 + 
 +if [ -z "$TARGET" ]; then 
 +  echo "------------------------------------------------------------" 
 +  echo " Как видят реальные сервисы (с этого VPS):" 
 + 
 +  # Cloudflare 
 +  loc=$(g https://www.cloudflare.com/cdn-cgi/trace | awk -F= '/^loc=/{print $2}') 
 +  row "Cloudflare" "$loc" 
 + 
 +  # YouTube — регион Google по этому IP 
 +  yt=$(g "https://www.youtube.com/premium" | grep -o '"countryCode":"[A-Z]\{2\}"' | head -1 | cut -d'"' -f4) 
 +  row "YouTube (Google)" "${yt:-нет данных}" 
 + 
 +  # Gemini: регион берём из страницы (alpha-3), решение — по списку 
 +  # неподдерживаемых стран. Старый маркер 45631641 — только как доп. признак. 
 +  gm=$(eval "curl $FAM -sL --max-time 15 -A \"$UA\" -H 'Accept-Language: en-US,en;q=0.9' https://gemini.google.com/app") 
 +  gc3=$(grep -o ',2,1,200,"[A-Z]\{3\}"' <<<"$gm" | head -1 | grep -o '[A-Z]\{3\}') 
 +  gc=""; [ -n "$gc3" ] && gc=$(a3to2 "$gc3") 
 + 
 +  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 
 + 
 +echo "============================================================" 
 +echo "Если базы показывают SG, а YouTube/Gemini — RU/CN/HK и т.п.:" 
 +echo "виновата геолокация Google -> просите провайдера сменить IP" 
 +echo "или подать исправление (geofeed / форма Google)." 
 +echo "Если WHOIS = CN/RU: блок зарегистрирован там, надёжнее сменить IP." 
 +echo "Gemini также смотрит страну Google-аккаунта, не только IP."
 </code> </code>
сингапур_gemini.1792650186.txt.gz · Последнее изменение: — bonterkoz

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