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:
IP: 213.33.98.123*UlkeKodu: AT*UlkeAdi: Austria*Sehir: Vienna*StateCode: AT-9*Koordinat: 48.1951, 16.3483*ASN: 8447*asDesc: A1TELEKOM-AT A1 Telekom Austria AG, AT*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=txt Çoklu satır olarak text formatında sunar:
PHP- Kodu
https://api.ipsorgu.xyz/proxy/213.33.98.123?d=txt
Cevap:
IP: 213.33.98.123
UlkeKodu: AT
UlkeAdi: Austria
Sehir: Vienna
StateCode: AT-9
Koordinat: 48.1951, 16.3483
ASN: 8447
asDesc: A1TELEKOM-AT A1 Telekom Austria AG, AT
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.)