Tekil Mesaj gösterimi
Alt 07 Ağustos 2024, 20:19   #1
BlackForce
Bu saatten sonra acın acıkırsa, anca ekmek olur koşarım sana.
BlackForce - ait Kullanıcı Resmi (Avatar)

Standart Sunucu koruma botu için kod örneği

Merhaba,

bir süredir üstüne çalıştığım [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] için bir kod örneği paylaşmak istedim, 10 adet koruma verisi var.

IPSorgu.Xyz dünya standartlarında bir API ile IP adresinden şehir, bölge, ülke, enlem/boylam verileri, saat dilimi, para birimi, proxy tespiti vb. gibi herhangi bir IP'nin coğrafi konumunu almanızı sağlayan önde gelen IP'den coğrafi konum API'lerinden birini sunar.

Özetle, IP adresinden ülke, şehir, asn ve ip güvenliği hakkında değerli bilgiler sunuyor.

ircd sunucularına hizmet eden mIRC ve türevleri için özel başlıklar bulunuyor, örneğin


d=mirc Tek satır ve * karakteriyle sunar:

PHP- Kodu

https://api.ipsorgu.xyz/proxy/213.33.98.123?d=mirc

Cevap:
IP213.33.98.123*UlkeKoduAT*UlkeAdiAustria*SehirVienna*StateCodeAT-9*Koordinat48.195116.3483*ASN8447*asDescA1TELEKOM-AT A1 Telekom Austria AGAT*asOrgA1 Telekom Austria AG*asDomaina1.at*Bad DatacenterFalse*IRCDronesFalse*BogonFalse*CrawlerFalse*AttackerFalse*SpamFalse*AbuseTrue*VPNFalse*TorFalse*ProxyTrue 

d=txt Çoklu satır olarak text formatında sunar:

PHP- Kodu

https://api.ipsorgu.xyz/proxy/213.33.98.123?d=txt

Cevap:
IP213.33.98.123
UlkeKodu
AT
UlkeAdi
Austria
Sehir
Vienna
StateCode
AT-9
Koordinat
48.195116.3483
ASN
8447
asDesc
A1TELEKOM-AT A1 Telekom Austria AGAT
asOrg
A1 Telekom Austria AG
asDomain
a1.at
Bad Datacenter
False
IRCDrones
False
Bogon
False
Crawler
False
Attacker
False
Spam
False
Abuse
True
VPN
False
Tor
False
Proxy
True 

d= başlığı gönderilmediğinde oldukça ayrıntılı IP bilgisi sunulur.

h=1 Hostname taramasını aktif eder, sadece IP değil, hostname ile de proxy taraması yapılabiliyor:

PHP- Kodu

https://api.ipsorgu.xyz/proxy/213.33.98.123?d=mirc 

Yani, ekstra IP Adresi çözümlemesiyle uğraşmayıp (Bkz mIRC: /dns hostname) direkt hostname ile sorgu atılabiliyor.

Kod

alias jv return $replacecs($1-,\u0131,ı,\u0130,İ,\u011f,ğ,\u011e,Ğ,\u00fc,ü,\u00dc,Ü,\u015f,ş,\u015e,Ş,\u00f6,ö,\u00d6,Ö,\u00e7,ç,\u00c7,Ç)

alias type return mirc

alias ipSorguApi return apikeygirin

alias zmn {
  return $gettok($1-,3-3,32) $trTarih($gettok($1-,2-2,32)) $gettok($1-,5-,32) $trTarih($gettok($1-,1,32)) - Saat : $gettok($1-,4-4,32)
}

alias trTarih {
  return $replace($1-,Mon,Pazartesi,Tue,Salı,Wed,Çarşamba,Thu,Perşembe,Fri,Cuma,Sat,Cumartesi,Sun,Pazar,Nov,Kasım,Dec,Aralık,Jan,Ocak,Feb,Şubat,Apr,Nisan,May,Mayıs,Jun,Haziran,Jul,Temmuz,Aug,Agustos,Sep,Eylül,Oct,Ekim)
}

alias proxyCh {
  if (!$1 || !$2 || !$3) { echo proxyCh nick ip port olarak kullanınız. }
  else { var %pc $r(999,9999) | sockopen $+(pCh,%pc) api.ipsorgu.xyz 80 | sockmark $+(pCh,%pc) $+($1, $chr(247), $2, $chr(247), $3, $chr(247), $type) }
}

on *:sockopen:pCh*:{
  if ($sockerr) { sockclose $sockname }
  else {
    sockwrite -nt $sockname GET $+(/proxy/,$gettok($sock($sockname).mark,2,247),?d=,$type,$iif($ipSorguApi,$+(&api=,$ipSorguApi))) HTTP/1.1
    sockwrite -nt $sockname Host: $sock($sockname).addr | sockwrite -nt $sockname Connection: close | sockwrite -nt $sockname $crlf
  }
}

on *:sockread:pCh*:{
  var %b | sockread -f %b | tokenize 32 %b
  if $gettok($sock($sockname).mark,4,247) == mirc {
    if $regex($1-, "sebep": "(.*)") {
      echo -a Hata: $jv($regml(1))
    }
    elseif $regex($1-, ApiLimit: (.*)) {
      echo -a ---------------------- ApiLimit ---------------------- | echo -a 1
      echo -a Dakikalık Api İsteği Limiti: $regml(1)
    }
    elseif $regex($1-, Kalan: (.*)) {
      echo -a Dakikalık Kalan Api İsteği Sayısı: $regml(1)
    }
    elseif $regex($1-, Sifirlanma: (.*)) {
      echo -a API Sıfırlanma Süresi: $zmn($asctime($regml(1)))
    }
    elseif $regex($1-, RATELIMIT_HEADER_RETRY_AFTER: (.*)) {
      echo -a API Sonraki Deneme Süresi: $regml(1) | echo -a 1
    }
    elseif $regex($1-, IP: (.*)\*UlkeKodu: (.*)\*UlkeAdi: (.*)\*Sehir: (.*)\*StateCode: (.*)\*Koordinat: (.*)\*ASN: (.*)\*asDesc: (.*)\*asOrg: (.*)\*asDomain: (.*)\*Bad Datacenter: (.*)\*IRCDrones: (.*)\*Bogon: (.*)\*Crawler: (.*)\*Attacker: (.*)\*Spam: (.*)\*Abuse: (.*)\*VPN: (.*)\*Tor: (.*)\*Proxy: (.*)) {
      echo -a ---------------------- Nick ---------------------- | echo -a 1
      echo -a Nick: $gettok($sock($sockname).mark,1,247) IP: $gettok($sock($sockname).mark,2,247) Port: $gettok($sock($sockname).mark,3,247)
      echo -a 1
      echo -a ---------------------- Konum ---------------------- | echo -a 1
      echo -a Ulke Kodu: $regml(2) Ulke: $regml(3) Sehir: $regml(4) Plaka Kodu: $regml(5) Koordinat: $regml(6) Maps: $+(https://www.google.com.tr/maps/@,$+($removecs($regml(6), $chr(32))), ?hl=tr)
      echo -a 1
      echo -a ---------------------- ASN ---------------------- | echo -a 1
      echo -a ASN Numarası: $regml(7) Şirket Açıklaması: $regml(8) Şirket Adı: $regml(9) ASN Domain: $regml(10)
      echo -a 1
      echo -a ---------------------- Guvenlik ---------------------- | echo -a 1
      echo -a IRCDrones: $regml(11)  
      echo -a Bad Datacenter: $regml(12) Bogon: $regml(13) Crawler: $regml(14) Attacker: $regml(15)
      echo -a Spam: $regml(16) Abuse: $regml(17) VPN: $regml(18) Tor: $regml(19) Proxy: $regml(20)
      echo -a 1
    }
  }
  else { echo -a $1- }
}
Bu kod örneği, sunucu koruması botu kodlaması için sadece bir başlangıç referans noktasıdır, istediğiniz gibi düzenleyebilirsiniz/yeniden kodlayabilirsiniz.


API kullanım senaryoları için şu blog'a göz atabilirsiniz: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

(Bir süreliğine bütün kayıtlara günlük 5000 API sağlanıyor.)
________________