Skocz do zawartości

Skrypt dla Ukochanej - banowanie po kraju


ELWRO

Rekomendowane odpowiedzi

Kochani.

Moja dziewczyna ma problem z przyjaciółką z dawnych lat, która odwiedza jej bloga. Nie chce by to robiła, a przyjaciółka jest w Irlandii. Za pomocą google analytics łatwo sprawdzić domenę z jakiej ta pani odwiedza bloga. Domenę i ip mamy.

Czy dałoby się napisać króciusieńki skrypt (javascript, przyjazny np. bloggerowi), który na podstawie kraju .ie lub domeny .xxx.ie użytkownika wysyłał jakiś kod błędu HTTP przeglądarce? Albo jakiś komunikat: "you are not welcomed on this site? "

Z góry ściskam każdego rekę i stawiam virt. browara za pomoc. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Do .htaccess nie ma dostępu - to blogger od google - blogspot.

Wlaśnie miło byłoby gdyby dałoby się blokować ISP'a ale jak to zrobić? Nie jestem biegły ani w javie ani w javascripcie.

Z GA wiem tyle, że ISP to eircom.net. Miło byłoby gdyby taki skrypcik posiadał 2 lub 3 linijki albo wildcardy do blokowania niechcianej przyjaciółki.

2-3 linijki w sensie warunków np. if isp== cośtam... albo wildcardy typu if isp == *.eircom.net :) then wysyłam Ci http 502 albo jakiś gorszy np. 404 ;)

Dałoby się coś takiego zrobić??

Odnośnik do komentarza
Udostępnij na innych stronach

Tyle, że podany wyżej plugin do Wordpressa jest a mnie chodzi o bloggera, a Toolator jest płatny i nie obejmuje blogowanie rang ip (podejrzewam, że eircom.net ma rózne IP).

Czy nie dałoby się zrobić w HEAD strony czegoś takiego:

<script = javascript;

adres=nazwa_hosta_przegladacza

if występuje w nazwie przeglądacza (eircom.net) then

wysyłam_ci_kod_http_że_dostęp_zabroniony();

else

nie robię nic

koniec skryptu

tylko żeby to teraz z mojego na javowe przełożyć :wacko:

Odnośnik do komentarza
Udostępnij na innych stronach

Kombinuj:

<script type="text/javascript">
function strstr (haystack, needle, bool) {
var pos = 0;

haystack += '';
pos = haystack.indexOf(needle);	if (pos == -1) {
	return false;
} else {
	if (bool) {
		return haystack.substr(0, pos);		} else {
		return haystack.slice(pos);
	}
}
}
if(strstr(document.location.hostname,'eircom.net')){
top.location.href='https://';
}
</script>

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

No to zrób taki myk:

<script type="text/javascript">
function getip(json){
  if (json.ip=='TUTAJ_ADRES_IP_DO_ZBANOWANIA')  location.href="https://www.yahoo.com";
}
</script>
<script type="text/javascript" src="https://jsonip.appspot.com/?callback=getip"></script>

Oczywiście nie zadziała w przypadku wyłączenia JS. Aby zablokować cały kraj będziesz musiał użyć np. https://freegeoip.appspot.com/json/ip-address i sprawdzić z jakiego kraju jest odwiedzający.

Na emeryturze po SEO zajmuję się R&D.

Odnośnik do komentarza
Udostępnij na innych stronach

Kombinuj:

<script type="text/javascript">
function strstr (haystack, needle, bool) {
var pos = 0;

haystack += '';
pos = haystack.indexOf(needle);	if (pos == -1) {
	return false;
} else {
	if (bool) {
		return haystack.substr(0, pos);		} else {
		return haystack.slice(pos);
	}
}
}
if(strstr(document.location.hostname,'eircom.net')){
top.location.href='https://';
}
</script>

Kurczę, to byłoby super, gdyby nie to, że document.location.hostname podaje mi adres ale serwera na którym jest strona (adres strony dziewczyny) a nie adres odwiedzającego komputera...

Googlałem find remote computer name javascript ale nic ciekawego nie wygooglałem. Jest jakaś funkcja taka??? coby zwracała adres odwiedzacza?

Veal, a jak to zrobić - tzn. sprawdzić za pomocą tego czegoś cały kraj?

Kurczę nr 2. WIem już że mogę mieć nr IP lusera:

	function getip(json){
  alert (json.ip);
  var ip_addr=json.ip; 
  alert ("Wartość ip:" +ip_addr);
  alert(typeof(ip_addr));

}

I teraz gdyby przesłać to do tego dziwnego czegoś: https://freegeoip.appspot.com/json/ip-address

czyli

 https://freegeoip.appspot.com/json/+ip_addr (????)

I jak to teraz przeparsować żeby dostać Ireland??? Sorki że tak zawracam gitarę ale nie jestem programistą javascript a widzę, że chyba się to da zrobić - przeparsować to, wyciągnąć countryName a potem użyć skryptu Tosika i dać warunek że if country == "Ireland" then location.href="https://ciebie.nie.lubie.com"; :)

Odnośnik do komentarza
Udostępnij na innych stronach

Na jakimś zewnętrznym serwerze umieść plik script.php:

</php
header('Content-Type: text/javascript;charset=UTF-8');
header('Cache-Control: private,max-age=3600');
$ip = $_SERVER['REMOTE_ADDR'];
$host = gethostbyaddr($ip);
if(strstr($host, 'eircom.net')){
echo 'top.location.href=\'https://tosiek.pl/\'';
}
?>

Na blogspocie umieszczasz to jak zwykły skrypt JS:

<script type="text/javascript" src="https://example.org/script.php"></script>

Przy takim wykorzystaniu możesz nawet się pobawić nawet w sprawdzanie IP.

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

Tosiek, dzięki serdeczne :shout:)

Ale nakręciłem się na sprawdzanie kraju.

Skleciłem sobie naśladując nieudolnie Veala takie coś:

<script type="text/javascript">

   function getip(json){
   addr_ip=json.ip;   
   alert(addr_ip);
  }

function cb(json) {
kraj = json.countryname;
alert ("Kraj pianko jedna: " + kraj);
}   		

</script>

<script type="text/javascript" src="https://jsonip.appspot.com/?callback=getip"></script>

<script type="text/javascript">
var el = document.createElement('script');
el.src = 'https://freegeoip.net/json/'+addr_ip+'?callback=cb';
document.body.appendChild(el);
</script>

Ale nie wiem czemu okienko zamiast kraju podaje mi Undefined. tymczasem jak odwiedziłem adres /json/moje_ip to dostałem poprawny wynik:

{"status":true,"ip":"91.193.208.2","countrycode":"PL","countryname":"Poland","regioncode":"35","regionname":"Katowice","city":"Gliwice"

I dziwne, bo gdy dam kraj = json.city to działa, więc nie wiem.

Jakbym miał w zmiennej ten kraj to bym Tośkowy skrypt dodał i porównał czy to Ireland czy nie Ireland ;-))

Co Wy na to? Co skićkałem?

EDIT: mam błąd: powinienem pisać nie country tylko country_name ;-))) Mam kraj w zmiennej w postaci Poland. Teraz tylko spróbuję dodać Tośkowy sprawdzacz...

Jasny gwint czego nie robi się z miłości. Zamiast robić zdjęcia ja się zabawiam w programistę javascript.... :P

Odnośnik do komentarza
Udostępnij na innych stronach

Działa!!! Zrobiłem tak:

<script type="text/javascript">

  function strstr (haystack, needle, bool) {
	var pos = 0;

	haystack += '';
	pos = haystack.indexOf(needle);	
	if (pos == -1) {
	return false;
} else {
	if (bool) {
		return haystack.substr(0, pos);		} else {
		return haystack.slice(pos);
	}
}
}


function getip(json){
   addr_ip=json.ip;   
   alert(addr_ip);
  }

function cb(json) {
kraj = json.country_name;
alert ("Kraj pianko jedna: " + kraj);

if(strstr(kraj,"Poland")){
alert ('Twój kraj to:' + kraj + '\n. Warunek został spełniony')
top.location.href='https://pl.wikipedia.org/wiki/P%C4%85czek';
}


}   		



</script>

<script type="text/javascript" src="https://jsonip.appspot.com/?callback=getip"></script>

<script type="text/javascript">
var el = document.createElement('script');
el.src = 'https://freegeoip.net/json/'+addr_ip+'?callback=cb';
document.body.appendChild(el);
</script>

Teraz spróbuję przenieść na blogspota! :shout:

Będę solidnie dziękował i dawał Wam repy jak zadziała. I tak z góry potężna dziękówa za pomoc!!!

Odnośnik do komentarza
Udostępnij na innych stronach

Drążyłem, drążyłem aż wydrążyłem ;-))

<script type="text/javascript">

  function strstr (haystack, needle, bool) {
	var pos = 0;
	haystack += '';
	pos = haystack.indexOf(needle);	
	if (pos == -1) {
	return false;
} else {
	if (bool) {
		return haystack.substr(0, pos);		} else {
		return haystack.slice(pos);
	}
}
}


function getip(json){
   addr_ip=json.ip;   
   }

function cb(json) {
kraj = json.country_name;

if(strstr(kraj,"Ireland")){
top.location.href='https://pl.wikipedia.org/wiki/P%C4%85czek';
}

}   		

</script>

<script type="text/javascript" src="https://jsonip.appspot.com/?callback=getip"></script>

<script type="text/javascript">
var el = document.createElement('script');
el.src = 'https://freegeoip.net/json/'+addr_ip+'?callback=cb';
document.body.appendChild(el);
</script>

Ale mam dwa pytania.

1. Jak zablokować wszystkie kraje oprócz Polski? Np. zablokuje to używanie Tora. Czyli jak skonstruować warunek żeby to było:

if strstr(kraj, NIE RÓWNA SIĘ Poland) {

wywal niechcianego gościa();

}

;-)

i 2. Dlaczego skrypt działa tylko w sekcji BODY? Próbowałem umieszczać go w sekcji Head, wolałbym, żeby niechciany gość nie widział strony, tymczasem skrypt w sekcji BODY przekierowuje gdy jest się z Irlandii, ale a) można przez chwilę widzieć treść bloga i :shout: naciskając ESC przerywa się skrypt... Jest na to jakaś rada by nie dało się przerwać skryptu ESCAPEM albo żeby wywalał przed załadowaniem strony? Czemu nie mogę umieścić go w sekcji HEAD??

Z góry dzięki :P)

Działanie można zobaczyć tu: RĘKODZIEŁO

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności