Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] WINHTTP ikariam bot


Gość

Rekomendowane odpowiedzi

Opublikowano

Otóż dawno dawno temu...

...założyłem(nie wiem po co) konto na ikariam i teraz z wyjściem poradnika postanowiłem zrobić w tym bota.

Oto kod i .ini:

 

 

#include <WinHttp.au3>
#Region ### Ini ###
$data = IniReadSection(@ScriptDir&"\ikariam.ini","LoginData")
If $data[0][0] = 3 Then
$login = $data[1][1]
$password = $data[2][1]
$server = $data[3][1]
Else
ConsoleWriteError("ini read error")
Exit
EndIf
$bot = IniReadSection(@ScriptDir&"\ikariam.ini","Bot")
If $bot[0][0] = 1 Then
$piratesAttackLevel = $bot[1][1]
Else
ConsoleWriteError("ini read error")
Exit
EndIf
#EndRegion ### Ini ###
$oWH = _WinHttpOpen("User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0")
For $i = 1 to 5
ConsoleWrite("proba login"&$i&@CR)
$xill = LogIn($login,$password,$server)
If $xill = 1 Then
$eff = 1
ExitLoop
ElseIf $xill = 0 Then
ConsoleWriteError("cant login"&$i&@CR)
$eff = 0
EndIf
Next
If $eff = 0 Then
ConsoleWriteError("error with login"&@CR)
Exit
ElseIf $eff = 1 Then
ConsoleWrite("login succesful"&@CR)
EndIf
#Region ### Functions ###
Func LogIn($logini,$passwordi,$serveri)
$connect = _WinHttpConnect($oWH,"pl.ikariam.com")
$loginreq = _WinHttpOpenRequest($connect,"POST","/index.php?action=loginAvatar&function=login HTTP/1.1")
_WinHttpAddRequestHeaders($loginreq,"Host: s21.pl.ikariam.com")
_WinHttpAddRequestHeaders($loginreq,"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
_WinHttpAddRequestHeaders($loginreq,"Accept-Language: pl,en-us;q=0.7,en;q=0.3")
_WinHttpAddRequestHeaders($loginreq,"Accept-Encoding: gzip, deflate")
_WinHttpAddRequestHeaders($loginreq,"Connection: keep-alive")
_WinHttpAddRequestHeaders($loginreq,"Referer: http://pl.ikariam.com/")
_WinHttpAddRequestHeaders($loginreq,"Content-Type: application/x-www-form-urlencoded")
_WinHttpAddRequestHeaders($loginreq,"Content-Length: 96")
_WinHttpSendRequest($loginreq,Default,"uni_url="&$serveri&".pl.ikariam.com&name="&$logini&"&password="&$passwordi&"&kid=&startPageShown=1&detectedDevice=1")
_WinHttpReceiveResponse($loginreq)
$data = ""
Do
$data &= _WinHttpReadData($loginreq,0)
Until @error
Return NOT StringInStr($data,"Błąd!",2)
EndFunc
#EndRegion ### Functions ###

[LoginData]
Login =
Password =
Server = s21
[bot]
PiratesAttackLevel = 1

 

 

 

Otóż nieważne jakie wartości wpisze do LoginData i tak twierdzi że "login succesful."

Opublikowano

nie lepiej ci znaleźć stringa który występuje tylko po zalogowaniu?

ponieważ błąd może być gdzieś w cssach i innych gównach niewidocznych + na 100% moze wystepowac w 2 miejscach(w grze i poza)

+ zamień linijke

 

$loginreq = _WinHttpOpenRequest($connect,"POST","/index.php?action=loginAvatar&function=login")

content lenght mozesz wywalic, lub date wprowadzić do $data a potem

 

_WinHttpAddRequestHeaders($loginreq,"Content-Length: " & stringlen($data)")
_WinHttpSendRequest($loginreq,Default,$data)

aaaa

wlasnie

pisalem w tucie

ze gzip tego nie wpisujemy bo dostajemy zaszyfrowana odpowiedź

 

_WinHttpAddRequestHeaders($loginreq,"Accept-Encoding: gzip, deflate")

Opublikowano

 

 

#include <WinHttp.au3>
#Region ### Ini ###
$data = IniReadSection(@ScriptDir&"\ikariam.ini","LoginData")
If $data[0][0] = 3 Then
$login = $data[1][1]
$password = $data[2][1]
$server = $data[3][1]
Else
ConsoleWriteError("ini read error")
Exit
EndIf
$bot = IniReadSection(@ScriptDir&"\ikariam.ini","Bot")
If $bot[0][0] = 1 Then
$piratesAttackLevel = $bot[1][1]
Else
ConsoleWriteError("ini read error")
Exit
EndIf
#EndRegion ### Ini ###
$oWH = _WinHttpOpen("User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0")
Local $eff
For $i = 1 to 5
ConsoleWrite("proba login"&$i&@CR)
$xill = LogIn($login,$password,$server)
If $xill = 1 Then
$eff = 1
ExitLoop
ElseIf $xill = 0 Then
$eff = 0
EndIf
Next
If $eff = 0 Then
ConsoleWriteError("cant login"&@CR)
Exit
ElseIf $eff = 1 Then
ConsoleWrite("login succesful"&@CR)
EndIf

#Region ### Functions ###
Func LogIn($logini,$passwordi,$serveri)
$connect = _WinHttpConnect($oWH,"pl.ikariam.com")
$loginreq = _WinHttpOpenRequest($connect,"POST","/index.php?action=loginAvatar&function=login HTTP/1.1")
_WinHttpAddRequestHeaders($loginreq,"Host: s21.pl.ikariam.com")
_WinHttpAddRequestHeaders($loginreq,"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
_WinHttpAddRequestHeaders($loginreq,"Accept-Language: pl,en-us;q=0.7,en;q=0.3")
_WinHttpAddRequestHeaders($loginreq,"Connection: keep-alive")
_WinHttpAddRequestHeaders($loginreq,"Referer: http://pl.ikariam.com/")
_WinHttpAddRequestHeaders($loginreq,"Content-Type: application/x-www-form-urlencoded")
$data = "uni_url="&$serveri&".pl.ikariam.com&name="&$logini&"&password="&$passwordi&"&kid=&startPageShown=1&detectedDevice=1"
_WinHttpAddRequestHeaders($loginreq,"Content-Length: "&StringLen($data))
_WinHttpSendRequest($loginreq,Default,$data)
_WinHttpReceiveResponse($loginreq)
$data = ""
Do
$data &= _WinHttpReadData($loginreq,0)
Until @error
Return StringInStr($data,"resources_foreign")
EndFunc
#EndRegion ### Functions ###

 

 

Teraz mi wogóle twierdzi że "cant login"

Zawsze.

Opublikowano

bo nie zrobiles tego co ci pisałem,

 

$loginreq = _WinHttpOpenRequest($connect,"POST","/index.php?action=loginAvatar&function=login")

uzywaj wpisu do htmla zawsze da ci pewność

Opublikowano

 

#include <WinHttp.au3>
#Region ### Ini ###
$data = IniReadSection(@ScriptDir&"\ikariam.ini","LoginData")
If $data[0][0] = 3 Then
   $login = $data[1][1]
   $password = $data[2][1]
   $server = $data[3][1]
Else
   ConsoleWriteError("ini read error")
   Exit
EndIf
$bot = IniReadSection(@ScriptDir&"\ikariam.ini","Bot")
If $bot[0][0] = 1 Then
   $piratesAttackLevel = $bot[1][1]
Else
   ConsoleWriteError("ini read error")
   Exit
EndIf
#EndRegion ### Ini ###
$oWH = _WinHttpOpen("User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0")
Local $eff
For $i = 1 to 5
   ConsoleWrite("proba login"&$i&@CR)
   $xill = LogIn($login,$password,$server)
   If $xill = 1 Then
       $eff = 1
       ExitLoop
   ElseIf $xill = 0 Then
       $eff = 0
   EndIf
Next
If $eff = 0 Then
   ConsoleWriteError("cant login"&@CR)
   Exit
ElseIf $eff = 1 Then
   ConsoleWrite("login succesful"&@CR)
EndIf

#Region ### Functions ###
Func LogIn($logini,$passwordi,$serveri)
$connect = _WinHttpConnect($oWH,"pl.ikariam.com")
$loginreq = _WinHttpOpenRequest($connect,"POST","/index.php?action=loginAvatar&function=login")
_WinHttpAddRequestHeaders($loginreq,"Host: s21.pl.ikariam.com")
_WinHttpAddRequestHeaders($loginreq,"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
_WinHttpAddRequestHeaders($loginreq,"Accept-Language: pl,en-us;q=0.7,en;q=0.3")
_WinHttpAddRequestHeaders($loginreq,"Connection: keep-alive")
_WinHttpAddRequestHeaders($loginreq,"Referer: http://pl.ikariam.com/")
_WinHttpAddRequestHeaders($loginreq,"Content-Type: application/x-www-form-urlencoded")
$data = "uni_url="&$serveri&".pl.ikariam.com&name="&$logini&"&password="&$passwordi&"&kid=&startPageShown=1&detectedDevice=1"
_WinHttpAddRequestHeaders($loginreq,"Content-Length: "&StringLen($data))
_WinHttpSendRequest($loginreq,Default,$data)
_WinHttpReceiveResponse($loginreq)
$data = ""
Do
$data &= _WinHttpReadData($loginreq,0)
Until @error
$file = FileOpen(@ScriptDir&"\log.html",2)
FileWrite($file,$data)
Return StringInStr($data,"resources_foreign")
EndFunc
#EndRegion ### Functions ###

 

Wpis do HTML mi wykłada że na serwie nie ma czegoś takiego jak \index.php ...

Opublikowano

THX, już działa.

 

#include <WinHttp.au3>
#Region ### Ini ###
$data = IniReadSection(@ScriptDir&"\ikariam.ini","LoginData")
If $data[0][0] = 3 Then
$login = $data[1][1]
$password = $data[2][1]
$server = $data[3][1]
Else
ConsoleWriteError("ini read error")
Exit
EndIf
$bot = IniReadSection(@ScriptDir&"\ikariam.ini","Bot")
If $bot[0][0] = 1 Then
$piratesAttackLevel = $bot[1][1]
Else
ConsoleWriteError("ini read error")
Exit
EndIf
#EndRegion ### Ini ###
$oWH = _WinHttpOpen("User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0")
Local $eff
For $i = 1 to 5
ConsoleWrite("proba login"&$i&@CR)
$xill = LogIn($login,$password,$server)
If $xill = 1 Then
$eff = 1
ExitLoop
ElseIf $xill = 0 Then
$eff = 0
EndIf
Next
If $eff = 0 Then
ConsoleWriteError("cant login"&@CR)
Exit
ElseIf $eff = 1 Then
ConsoleWrite("login succesful"&@CR)
EndIf

#Region ### Functions ###
Func LogIn($logini,$passwordi,$serveri)
$connect = _WinHttpConnect($oWH,$serveri&".pl.ikariam.com")
$loginreq = _WinHttpOpenRequest($connect,"POST","/index.php?action=loginAvatar&function=login")
_WinHttpAddRequestHeaders($loginreq,"Host: s21.pl.ikariam.com")
_WinHttpAddRequestHeaders($loginreq,"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
_WinHttpAddRequestHeaders($loginreq,"Accept-Language: pl,en-us;q=0.7,en;q=0.3")
_WinHttpAddRequestHeaders($loginreq,"Connection: keep-alive")
_WinHttpAddRequestHeaders($loginreq,"Referer: http://pl.ikariam.com/")
_WinHttpAddRequestHeaders($loginreq,"Content-Type: application/x-www-form-urlencoded")
$data = "uni_url="&$serveri&".pl.ikariam.com&name="&$logini&"&password="&$passwordi&"&kid=&startPageShown=1&detectedDevice=1"
_WinHttpAddRequestHeaders($loginreq,"Content-Length: "&StringLen($data))
_WinHttpSendRequest($loginreq,Default,$data)
_WinHttpReceiveResponse($loginreq)
$data = ""
Do
$data &= _WinHttpReadData($loginreq,0)
Until @error
$file = FileOpen(@ScriptDir&"\log.html",2)
FileWrite($file,$data)
Return StringInStr($data,"resources_foreign")
EndFunc
#EndRegion ### Functions ###

[LoginData]
Login =
Password =
Server =
[bot]
PiratesAttackLevel =

 

 

Temat do zamknięcia.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...