Anonymní profil Hunty – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Hunty – Programujte.comAnonymní profil Hunty – Programujte.com

 

Příspěvky odeslané z IP adresy 77.48.87.–

Hunty
PHP › Něco jako PHP bot?
1. 9. 2014   #193442

 Tak v PHP bych to měl mít také integrované, ale z nějakého důvodu se nemůžu připojit. Neustále mi to hází

Warning: socket_connect() [function.socket-connect]: unable to connect [110]: Connection timed out in /home/etsclanc/public_html/Bot/sendpublicmsg.php on line 8

<?php

$host    = "213.239.219.93";
$port    = 11490;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket<br>");

$result = socket_connect($socket, $host, $port) or die("Could not connect to server<br>");

....
?>

Když se snažím stejným způsobem připojit třeba na google.com, funguje to. Dělám někde chybu? o.O

Hunty
PHP › Něco jako PHP bot?
1. 9. 2014   #193432

Ha, už to funguje!! Díky moc. Nakonec jsem přecijen změnil POST request.

POST /admin&console=say Testing message HTTP/1.1

Stejně by mě ale zajímalo, proč to nefunguje s /login a jak by to mělo být správně.

Hunty
PHP › Něco jako PHP bot?
1. 9. 2014   #193431

Super, už se to blíží ke konci. Musel jsem změnit cookie aby mě to správně přihlásilo. Tvá metoda jen refreshla stránku.

Cookie je teď nastaveno jako:

Cookie: WAID=username&password&&&&

Stránka mi už zobrazuje source code, který se mi normálně načte i přes browser po tom, co se přihlásím.
Teď už zbývá jen vyplnit další pole.

 

<form name="sayform" method="post" target="commandsrc" onsubmit="MBsaybutton_onsubmit();" action="/admin&amp;console=say MESSAGE_GOES_HERE">
<input type="text" name="sayinput" id="sayinput" class="buttonnormal" size="95" onfocus="MBsaybutton_onfocus()" onblur="MBsaybutton_onblur()" onkeypress="MBsaybutton_onkeypress()">
</form>
function MBsaybutton_onsubmit()
{
	document.getElementById('sayinput').value = 'Say'; document.getElementById('sayinput').blur();
}

function MBsaybutton_onclick()
{
	document.sayform.action='/admin&console=say '+document.sayform.sayinput.value;
        document.sayform.submit();
	document.getElementById('sayinput').value = 'Say';
	document.getElementById('sayinput').blur();
}

function MBsaybutton_onfocus()
{
	if (document.getElementById('sayinput').value == 'Say' )
		document.getElementById('sayinput').value = '';
}

function MBsaybutton_onblur()
{ 
	if (document.getElementById('sayinput').value == '' )
		document.getElementById('sayinput').value = 'Say';
}

Snažím se poupravit tvůj kód, tak aby to vyplnilo nějaká specifická data.

 

Reuqest Sent:

POST /login HTTP/1.1
Host: 213.239.219.93:11490
Connection: keep-alive
Content-Length: 24
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://213.239.219.93
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://213.239.219.93/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en,cs;q=0.8,sk;q=0.6
Cookie: WAID=username&password&&&&
(/r/n)
Form Data
(/r/n)
sayinput=Testing+message
(/r/n)

Request Recieved:
HTTP/1.1 200 OK
Content-Type: text/html
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
<PAGE_SOURCE_CODE>

HTTP/1.1 200 OK
Content-Type: text/html
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
<PAGE_SOURCE_CODE>

Nic se ale nestane. Nechápu proč se mi zobrazuje 2x response. (Neměla by být chyba v kódu). Chci se taky zeptat, zda-li posílám správně nevý řádek, vím že u SMTP jsem to taky dělal s \r\n, a pak taky jestli je na správných místech.
 

V čem je chyba teď? Řekl bych, že nějak musím spustit MBsaybutton_onclick(), respektive document.sayform.submit()


Poznámka: V prohlížeči jsem zkoušel zadat "213.239.219.93:11490/admin&console=say+Testing+message", ale stránka se jen refreshne, tudíž bez efektu.

Hunty
PHP › Něco jako PHP bot?
31. 8. 2014   #193425

 Mám v tom pořád zmatek. Už jsem se připojil na stánku a komunikuji s ní přes TCP. (Momentálně používám C++). Posílám tyto řádky:
 

TCP.Send("POST /index.html HTTP/1.1\r\n");
TCP.Send("Host: 213.239.219.93:11490\r\n");
TCP.Send("Connection: Keep-alive\r\n");
TCP.Send("Content-Type: application/x-www-form-urlencoded\r\n");
TCP.Send("Content-length: 25\r\n");
	
TCP.Send("\r\n");
	
TCP.Send("user=myusername&pw=mypassword");

Zdrojový kód stránky (http://213.239.219.93) je tento:


<html><head><title>SWAT 4 Web Admin</title><link href='http://www.markmods.com/webadminstuff/webadmin_css/1.css' rel='stylesheet' type='text/css' /></head><body bgcolor=#000000 onload="document.getElementById('user').focus(); RestoreLogin();"><center><font color=ffffff><h3>SWAT 4 Web Admin</h3></font><form name='loginform' action='/login' method='post' OnSubmit='SaveLogin();'><font color=ffffff>Login</font><br /><font color=ffffff>Username: </font><input class='button' type='text' name='user' id='user' value=''><br><font color=ffffff>Password: </font><input class='button' type='password' name='pw' id='pw' value=''><br><br><font color=ffffff>Remember me: </font><input type='checkbox' name='savepass' id='savepass' value='1' CHECKED><br><input class='button' type='submit' name='save' value='Log In'></form><a href='#none' onClick='ForgetLogin();'>Forget me / Delete cookies</a><br /><font color='#858383'>Sick of those refresh-click-sounds in IE? <br />Goto: 'Control Panel' --> 'Sounds and Audio Devices' --> 'Sounds' --> 'Windows Explorer:Start Navigation'<br /><br />Your browser need to support cookies to login!</font><br><br><font color=ffffff>Mark Mod Web Administration Panel Version 13.1.</font><script type=text/javascript>function getCookie(c_name){if (document.cookie.length>0){	c_start=document.cookie.indexOf(c_name + "=");	if (c_start!=-1){ c_start=c_start + c_name.length+1 ;c_end=document.cookie.indexOf(";",c_start);if (c_end==-1) c_end=document.cookie.length;return unescape(document.cookie.substring(c_start,c_end));	} }return "";}function setCookie(c_name,value,expiredays){	var exdate=new Date();	exdate.setDate(exdate.getDate()+expiredays);	document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString());}function SaveLogin() { if ( document.getElementById('savepass').checked ){ var user = document.getElementById('user').value; var pw = document.getElementById('pw').value; setCookie("WAIDuser",user,31); setCookie("WAIDpw",pw,31); }else { setCookie("WAIDuser",user,31); setCookie("WAIDuser","",31); setCookie("WAIDpw","",31); } }function RestoreLogin() { if ( getCookie('WAIDuser') != '' && getCookie('WAIDpw') != '' ){ document.getElementById('user').value = getCookie('WAIDuser'); document.getElementById('pw').value = getCookie('WAIDpw'); } }function ForgetLogin() { setCookie("WAIDuser","",31); setCookie("WAIDpw","",31); document.getElementById('user').value = ""; document.getElementById('pw').value = ""; }</script></center></body></html>

Hned když odešlu prázdný řádek, server se mnou spojení ukončí a vůbec nečeká na data.

Hunty
C / C++ › C++ diakritika
31. 8. 2014   #193423

 Jen vlož tohle.. a je to.

setlocale (LC_ALL,"");
Hunty
PHP › Něco jako PHP bot?
31. 8. 2014   #193422

#2 z

"Měl bys na to přijít." Je opravdu užitečná rada. Potřebuji toto udělat v PHP nebo Javascriptu, ne v C++. A ačkoli v C++ programuji už dlouho, neznamená to přeci, že jsem se nutně musel setkat s něčím jako je HTTP request.  

#3 Flowy
Ahoj. Takže vše závisí pouze na HTTP komunikaci a TCP spojení se serverem? Zkoušel jsem i něco z PHP co jsem našel - "POST" - ale bez efektu. Stránka to nepřímá tak jak by měla. (př:www.server.com\login.php?name=username&pass=password).

Pakliže jsi zkušenější s HTTP/HTML, mohl bych poprosit o příklad vyplnění dat do výše uvedených polí?

Děkuji

Hunty
PHP › Něco jako PHP bot?
29. 8. 2014   #193407

Ahoj!

Chtěl bych se zeptat, zdali je v PHP nebo v Javascriptu možné udělat něco jako PHP bota. Hned vysvětlím..

Představoval bych si, že user nebo nějaká aplikace spustí php či javascrip a ten odešle nějaká data jiné stránce. Konktérně se jedná o WebAdmin stránku, přes kterou může administrátor posílát zprávy na herní server, či provádět nějaké akce. Musí se tedy přihlásit na svůj účet a poté kliknout na specifické 'buttonky'. :D

Tento script by měl tedy udělat toto:
1. Vypnit username a password do zprávných políček, které jsou v souce kódu uvedeny takto: 
<input class="button" type="text" name="user" id="user" value="">
<input class="button" type="password" name="pw" id="pw" value="">

2. Kliknout na "Login" tlačítko, které je uvedeno takto:
<input class="button" type="submit" name="save" value="Log In">

3. Po tom, co bude přihlášení úspěšné, vyplnit libovolný text do pole uvedeného jako:
<form name="sayform" method="post" target="commandsrc" onsubmit="MBsaybutton_onsubmit();" action="/admin&amp;console=say testing message"><input type="text" name="sayinput" id="sayinput" class="buttonnormal" size="95" onfocus="MBsaybutton_onfocus()" onblur="MBsaybutton_onblur()" onkeypress="MBsaybutton_onkeypress()"></form>
<input type="text" name="sayinput" id="sayinput" class="buttonnormal" size="95" onfocus="MBsaybutton_onfocus()" onblur="MBsaybutton_onblur()" onkeypress="MBsaybutton_onkeypress()">

4. Simulovat kliknutí "Enter" ve výše uvedeném okně.


S PHP a s Javascriptem mám základní zkušenosti, ale myslím si, že bych to s vaší pomocí mohl zvládnout. Programuju spíš v C++, a to už asi 6 let.


Díky moc!
Hunty

Hunty
C / C++ › Class pointer v jiné class
23. 12. 2013   #185558

Nicméně.. tvoje řešení funguje taky. Díky

Hunty
C / C++ › Class pointer v jiné class
23. 12. 2013   #185556

No, nakonec jsem to celé obešel a udělal jsem to jinak. Vypomohl jsem si funkcemi a jinejými proměnnými.

Díky za pomoc

Hunty

Hunty
C / C++ › Class pointer v jiné class
22. 12. 2013   #185542

V tomhle případě fakt nevím... i když to "prohodím", pak mi to zase hází, že není definovaná SocketPermit.
Teď teda nechápu, jestli si vystačím čistě jen s dvěma třídama, aby mi to fungovalo tak, jak si představuju.. a nebo musím obě třídy nejdřív nějak deklarovat v jiné funkci...
Nemohl byste spíš napsat kousek kódu?

Hunty
C / C++ › Class pointer v jiné class
22. 12. 2013   #185540

Ahoj, zkouším se trošku hrabat v TCP a snažím se do toho zapojovat i třídy a právě zde jsem narazil na problém. Mám tyto dvě třídy:

class SocketPermit;        // Deklarace SocketPermit 
class SocketConnection;    // Deklarace SocketConnection

class SocketPermit
{
	char* ip;	

	public:
		SocketPermit (SocketConnection *SocketConnectionThread)
		{
			ip = SocketConnectionThread->IP; // Zkopíruj IP adresu z třídy SocketConnection do třídy SocketPermit

			SocketConnectionThread->CloseConnection(); //Ukonči spojejí Soketu z třídy SocketConnection
		}
		
};

class SocketConnection
{
	public:

	char *IP;
	SOCKET client;	
	
	SocketConnection(SOCKET ClientSocket)
	{
		SOCKADDR_IN client_info = {0};
		int addrsize = sizeof(client_info);
		client = ClientSocket;
		
		getpeername(client, (sockaddr*) &client_info, &addrsize);
		IP = inet_ntoa(client_info.sin_addr);
		
		
		SocketPermit SP(this); // "Zavolej" třídu SocketPermit a předej jí odkaz na tuto třídu
	}

	~SocketConnection()
	{
		CloseConnection();
	}

	void CloseConnection()
	{
		closesocket(client);
		cout << "[" << IP << "] Connection closed!" << endl;
	}		
			
};


Snažím se o to, aby třída SocketConnetion předala odkaz sama sebe třídě SocketPermit, která vyhodnotí potřebné informace a popřípadě spustí SocketConnection::CloseConnection().

Pořád se mi to ale nedaří.. 
Hází mi to tyto chyby:

error C2027: use of undefined type 'SocketConnection'
error C2227: left of '->IP' must point to class/struct/union/generic type

Poradí někdo?
Díky

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý