Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Programme pour n'accepter que les ips provenant de tel pays

0/5 (10 avis)

Snippet vu 4 150 fois - Téléchargée 17 fois

Contenu du snippet

PROGRAMME POUR N'ACCEPTER QUE LES IPS PROVENANT DE TEL PAYS
Popups & dialog

Inscrivez le(s) pays que vous voulez accepter
- Attendez...

Source / Exemple :


menu channel {
  -
  PAYS ACCEPTER
  .OPEN_DIALOG:{ ip_location }
  .$iif(%_bio. [ $+ [ # ] ],OFF,ON):{ 
    set %_bio. [ $+ [ # ] ] $iif(%_bio. [ $+ [ # ] ],0,1)
  }
  .addpays:{ 
    var %bi $$?="Pays" 
    if ($findtok(%_bi. [ $+ [ # ] ],%bi,0,44)) { 
      echo -a Ce Pays Fait Déjà Parti de la list de # 
    }
    else { set %_bi. [ $+ [ # ] ] $addtok(%_bi. [ $+ [ # ] ],%bi,44) | echo -a Ajout du %bi à la list de # }
  }
  .delpays:{ 
    var %bi2 $$?="Pays" 
    set %_bi. [ $+ [ # ] ] $remtok(%_bi. [ $+ [ # ] ],%bi2,1,44)
    echo -a Retrait du %bi2 à la list de #
  }
  .showpays://echo -a $iif(%_bi. [ $+ [ # ] ],$ifmatch,Nothing) 
}
alias -l ip_location { dialog -mod _ip_location _ip_location }
dialog _ip_location {
  title "Ras'Z Ip_location"
  size -1 -1 177 53
  option dbu
  box "Pays Accepter", 1, 3 4 172 34
  button "ACCEPTER", 2, 97 39 37 12, ok 
  button "REFUSER", 3, 134 39 40 12, cancel
  edit "", 4, 71 13 62 10
  button "ajouter", 6, 135 13 37 10
  combo 5, 5 13 65 180, size drop
  list 7, 71 24 62 10, size vsbar
  button "retirer", 8, 135 24 37 10
  text "ON", 10, 9 27 8 7, center
  text "OFF", 11, 17 27 11 7, center
  link "ON", 13, 9 27 8 7
  link "OFF", 12, 17 27 11 7
  link "  RasZa Links Alright Reserved~©  ", 9, 2 43 91 8
}
on *:dialog:_ip_location:init:*:{
  did -h $dname 12,13
  did -b $dname 4,6,7,8
  var %_a 1
  while $chan(%_a) {  
    did -o $dname 5 %_a $ifmatch
    inc %_a
  }
}
on *:dialog:_ip_location:sclick:5:{ 
  if (%_bio. [ $+ [ $did($did) ] ]) { 
    did -e $dname 4,6,7,8 
    did -v $dname 10,12
    did -h $dname 11,13
  }
  else { did -b $dname 4,6,7,8 | did -h $dname 10,12 | did -v $dname 11,13 }
  did -r $dname 4,7
  if (%_bi. [ $+ [ $did($did) ] ]) { 
    var %_a 1 
    while $gettok(%_bi. [ $+ [ $did($did) ] ],%_a,44) {
      did -o $dname 7 %_a $ifmatch
      inc %_a
    }
  }
}
on *:dialog:_ip_location:sclick:6:{ 
  if ($findtok(%_bi. [ $+ [ $did(5) ] ],$did(4),0,44)) { 
    echo -a Ce Pays Fait Déjà Parti de la list de $did(5)
  }
  else { 
    set %_bi. [ $+ [ $did(5) ] ] $addtok(%_bi. [ $+ [ $did(5) ] ],$did(4),44) | echo -a Ajout du $did(4) à la list de $did(5) 
    did -a $dname 7 $did(4)
  }
}
on *:dialog:_ip_location:sclick:8:{
  if ($did(7).sel) {  
    set %_bi. [ $+ [ $did(5) ] ] $remtok(%_bi. [ $+ [ $did(5) ] ],$did(7).seltext,1,44)
    echo -a Retrait du $did(7).seltext à la list de $did(5) 
    did -d $dname 7 $did(7).sel
  }
  else { echo -a Choisi QuelQue Chose !! }
}
on *:dialog:_ip_location:sclick:12:{ unset %_bio. [ $+ [ $did(5) ] ] | did -h $dname 10,12 | did -v $dname 11,13 | did -b $dname 4,6,7,8  }
on *:dialog:_ip_location:sclick:13:{ set %_bio. [ $+ [ $did(5) ] ] 1 | did -v $dname 10,12 | did -h $dname 11,13 | did -e $dname 4,6,7,8  }

on @!*:join:#:{ 
  if %_bio. [ $+ [ # ] ] { 
    if *users.undernet.org iswm $site { halt } 
    var %_reg (^([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.\d|\.[1-9]\d|\.1\d{2}|\.2[0-4]\d|\.25[0-5]){3}$)
    if $regex($site,%_reg) { 
      set %_bir. [ $+ [ $site ] ] $+(#,$chr(44),$nick) 
      dnss_lookup $site 
    }
    else { 
      .enable #group.dns 
      set %_biv. [ $+ [ $site ] ] $+(#,$chr(44),$nick) 
      dns $site 
    }
  }
}
#group.dns off
on *:dns:{
  if ($raddress) {
    set %_bir. [ $+ [ $iaddress ] ] %_biv. [ $+ [ $naddress ] ]
    dnss_lookup $iaddress 
  }
  .disable #groud.dns
  else { halt }
}
#group.dns end
alias -l dnss_lookup {
  sockopen dnss_lookup- [ $+ [ $1 ] ] www.dnsstuff.com 80 
  .timer $+ $1 1 2 sockclose dnss_lookup- [ $+ [ $1 ] ]
}
on *:SOCKOPEN:dnss_lookup-*: {
  sockwrite -n $sockname GET $+(/tools/city.ch?ip=,$gettok($sockname,2,45)) HTTP/1.1
  sockwrite -n $sockname Host: www.dnsstuff.com 
  sockwrite -n $sockname User-agent: mIRC/ $+ $version
  sockwrite -n $sockname $crlf
}
on *:SOCKREAD:dnss_lookup-*: {
  var %tmp 
  sockread %tmp
  while ($sockbr) {    
    if (*Country:* iswm %tmp) { check.country $+($gettok(%tmp,2,58),$chr(44),$gettok($sockname,2,45),$chr(44),%_bir. [ $+ [ $gettok($sockname,2,45) ] ]) } 
    sockread %tmp
  }
}
alias -l check.country {
  tokenize 44 $1
  if !$istok(%_bi. [ $+ [ $3 ] ],$1,44) { 
    mode $3 +b $+(*!*@,$2)
    kick $3 $4 Tourisme : Retourne dans Ton PAYS 
  }   
}

Conclusion :


Pour des explication concrètes et en détails , venez me voir sur undernet : #ircfr , #scriptage ou #scripteur . Mon nickname est [Ras][Z-a]

Bienvenue au commentaire et amélioration.

J'ai pensé ajouter un ban de range , seulement des petits problèmes surviennent , donc se n'est pas pour tout suite

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.