Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[SockeT] Connection http sur serveur web.
Auteur Message
Répondre en citant
Message [SockeT] Connection http sur serveur web. 
Bonjour, comme je peut le voir, ma commande SockeT est très peu (voir pas) utilisé mais elle le devrait.
Avec, on peut se connecter à un serveur web avec beaucoup de possibilités.


SockeT peut fonctionner avec tout les protocoles basées sur le TCP (HTTP, FTP, IMAP, IRC, NFS (V3), Telnet, SMTP (pour vos mails)...) et le TCP bien sûr.

Dans cet exemple, on veut utiliser le Http, donc d'abord, à quoi ressemble une requête http ?
Wikipédia a écrit:
GET / HTTP/1.1
Host: www.perdu.com
 
C'est donc une requête HTTP GET pour avoir / sur le serveur au nom de perdu.com.
Ca équivaudra à marquer ceci dans notre barre d’adresse
Code:
www.perdu.com/


Si on fait un ping vers ce site, on obtiendra l’adresse 208.97.177.124, ce qui est l'adresse ip de l'hébergeur, donc l'utilité de Host et de redirigé vers le site : www.perdu.com.
Cet adresse IP est entièrement exploitable par ma commande SockeT ce qui donnera ceci
Code:
SockeT /C 208.97.177.124 80
(80 comme le port par défaut du HTTP)

Créer ce paquet HTTP dans IN ressemblerais à ceci
Code:
(echo GET / HTTP/1.1
echo Host: [url=http://www.perdu.com]www.perdu.com[/url]
echo.
)>IN_
move /Y IN_ IN
Qui peut se simplifier en :
Code:
echo GET / HTTP/1.1^

Host: [url=http://www.perdu.com^]www.perdu.com^[/url]

>IN

Il ne faut pas oublier les espaces entre les lignes.

On peut avoir par exemple comme code :
Code:
@Echo off
echo Démarage de SockeT...
start SockeT /c 208.97.177.124 80

ping -n 5 127.0.0.1>nul

:: Vérification de l'existance de Session si dans le cas contraire, il y a erreur.
if not exist Session (
echo Erreur
pause
exit)

echo Création et envoie du packet.
echo GET / HTTP/1.1^

Host: www.perdu.com

>IN

:: Reçu

2>nul del session
pause

Ce code enverra un paquet http et ferme la connexion (ce qui reviens un peu à sonner à une porte et se barrer en se téléportant)

Maintenant, il nous faut attendre et "capturer" le paquet de réponse comme par exemple, ceci
Code:
echo En attente de réponse...
:b
ping -n 1 127.0.0.1>nul
if not exist Session echo ERROR
if not exist OUT goto b


Puis ensuite afficher OUT avec type OUT, ce qui donnera ça:

[hide=Code final de cette partie]
Code:
@Echo off
echo Démarage de SockeT...
start SockeT /c 208.97.177.124 80

ping -n 5 127.0.0.1>nul

:: Vérification de l’existence de Session si dans le cas contraire, il y a erreur.
if not exist Session (
echo Erreur
pause
exit)

echo Création et envoie du packet.
echo GET / HTTP/1.1^

Host: [url=http://www.perdu.com^]www.perdu.com^[/url]

>IN

echo En attente de réponse...
:b
ping -n 1 127.0.0.1>nul
if not exist Session echo ERROR
if not exist OUT goto b
type OUT

2>nul del session
pause[/hide]



Maintenant que l'on as notre paquet, comment trier, le corps et l'en-tête.
Pour trier l'en-tête, on peut faire ceci avec les instructions délaiyées (besoin de setlocal enabledelayedexpansion)
Code:
for /f "skip=1 delims=: tokens=1,*" %%A in (OUT) do (set bb=%%B
if not "!bb:~1!"=="~1" set HEAD[%%A]=!bb:~1!)
for /f "tokens=* eol=*" %%A in (OUT) do (set body=%body%%%A)

Notre en-tête sera dans ce format là HEAD[x]=value et notre body sera la variable body.



Dernière édition par TSnake41 le Jeu 31 Déc 2015 - 16:39; édité 2 fois

______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [SockeT] Connection http sur serveur web. 
Merci TS pour ces explications Okay

Vraiment excellent !

Tu pourrais faire d'autres exemple pour le transfert de fichier par exemple.

Ça devrait intèresser du monde.

Encore merci et bravo pour cette commande.

Wink




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [SockeT] Connection http sur serveur web. 
sachadee a écrit:
Merci TS pour ces explications Okay

Vraiment excellent !

Tu pourrais faire d'autres exemple pour le transfert de fichier par exemple.

Ça devrait intèresser du monde.

Encore merci et bravo pour cette commande.

Wink


Pour le transfert de fichier, ça doit être possible avec le "stream" du php et celui de SockeT (IN).

Et pour montrer les possibilités, je suis en train de faire un client ftp en batch avec SockeT
http://i.imgur.com/FM717Kl.png




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [SockeT] Connection http sur serveur web. 
Personnelement pour ce genre de chose je prefère utiliser VBS ou JS :

Code:

Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://www.perdu.com", False
o.send
wscript.echo o.responseText


Wink




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [SockeT] Connection http sur serveur web. 
TSnake, je m'y connais pas assez en requête GET en HTTP etc... Je voulais savoir si il est possible d'envoyer un fichier ou du texte et que le site récupère ce fichier ou le texte envoyé ? (le site qui serait en php bien sur)




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message [SockeT] Connection http sur serveur web. 
Skywalker a écrit:
TSnake, je m'y connais pas assez en requête GET en HTTP etc... Je voulais savoir si il est possible d'envoyer un fichier ou du texte et que le site récupère ce fichier ou le texte envoyé ? (le site qui serait en php bien sur)


Oui, il faut que SockeT envoie une requête POST avec comme corps les données à envoyer et le PHP récupère le tout dans le "fichier virtuel" "php://input".

Il faut par contre préciser le Content-Type et le Content-Length.

If faudra que je fasse un tutoriel.

PS aux modos : Des urls se transforment en [url=[/url] dans mes balises code.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [SockeT] Connection http sur serveur web. 
Ah ça pourrais être sympas un tuto là dessus Wink ça m'aiderai beaucoup ^^ et pas que moi je suppose, Antoine aussi :p




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message [SockeT] Connection http sur serveur web. 
Voici un Tuto assez sympa qui résume bien tout cela :

http://forum.phpfrance.com/faq-tutoriels/upload-fichiers-par-http-t545.html

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Message [SockeT] Connection http sur serveur web. 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch