


PHP模拟发送POST请求之三、用Telnet和fsockopen()模拟发送POST信息,telnetfsockopen_PHP教程
PHP模拟发送POST请求之三、用Telnet和fsockopen()模拟发送POST信息,telnetfsockopen
了解完了HTTP头信息和URL信息的具体内容,我们开始尝试自己动手写一段头信息发送到服务器。Windows内置命令Telnet可以帮助我们发送简单的HTTP请求。
并且TELNET是一个特别灵活的工具,我们还可以用它进行FTP/SMTP/POP3/TCP等方式的简单请求。
通过开始菜单--运行--CMD命令进入DOS状态,
我们输入“Telnet 主机地址 端口(Telnet 192.168.1.99 80)” 来进入telnet命令状态(完全黑窗口,此时输出字符会出问题),我们按”ctrl”+”]”,切回普通CMD窗口,再按”ENTER”回车键进入编辑命令状态。
如果系统提示找不到TELNET命令,只需按如下方式可解锁TELNET命令。
进入TELNET 命令输入模式后我们就可以直接编辑头文件来进行发送了
只需要注意:当编辑完请求头文件后要按两次回车键来发送。
这是一次标准的HTTP请求与响应,是不是跟上节的HTTP文件关联了。
当然我们不能只用这么不方便的工具,下面要介绍的是PHP里的fsockopen()方法。
先来看fsockopen()方法的原型:
<p>resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )</p>
它返回一个资源类型的结果,需要传入的参数分别是:
$hostname:主机名
$port:端口号
$errno:错误号(注意原型中的"&"一旦连接有错误,错误号将会被赋值给$errno)
$errstr:错误字符串(一旦连接有错误,错误信息将会被赋值给$errstr)
$timeout:超时时间
<span>$host</span>=<span>parse_url</span>(<span>$url</span>,PHP_URL_HOST);<span>//</span><span>获取host数据</span> <span>$port</span>=<span>parse_url</span>(<span>$url</span>,PHP_URL_PORT)==<span>null</span> ? 80 : <span>parse_url</span>(<span>$url</span>,PHP_URL_PORT);<span>//</span><span>获取端口数据,如果没有设置则默认为80</span> <span>$path</span>=<span>parse_url</span>(<span>$url</span>,PHP_URL_PATH);<span>//</span><span>获取到path信息后面使用</span> <span>$socket</span>=<span>fsockopen</span>(<span>$host</span>,<span>$port</span>,<span>$errno</span>,<span>$errstr</span>,20);//获取资源类型$socket
这个资源类型就如同Telnet里我们用telnet 主机名 端口号 命令之后的环境。
那么接下来,我们就要往这个环境里写内容了。
我们可以分次用fwrite()方法写入头信息,也可以将头信息进行拼合一次写入。
<span>fwrite</span>(<span>$socket</span>, "POST ".<span>$path</span>." HTTP/1.1\r\n"<span>); </span><span>fwrite</span>(<span>$socket</span>, "HOST: localhost\r\n\r\n");
或先拼合再写入的方式:
<span>$str</span>="POST ".<span>$path</span>." HTTP/1.1\r\n"."HOST: localhost\r\n\r\n"<span>; </span><span>fwrite</span>(<span>$socket</span>,<span>$str</span>);
注意:请求行、报头之间有一次回车键,我们用"\r\n"来进行回车输入,结束输入时两用"\r\n\r\n"模拟两次回车。
接下来我们用fread来读取响应信息并将其存入$info中:
<span>while</span> (!<span>feof</span>(<span>$socket</span>)) { <span>//</span><span>当还有待读取内容</span> <span>$info</span>.= <span>fgets</span>(<span>$socket</span>, 4096); <span>//</span><span>每次读取4096个字节内容,并用.连接符连接到$info中。</span> <span>} </span><span>echo</span> <span>$info</span>;<span>//</span><span>输出返回结果。</span>
当然以上是一个特别简单的例子,我们可以通过拼合更多的报头信息(加入Accept等)来将它更加完善。
接下来我们会说一些常用的POST方式。
如果您觉得本文对您有帮助,请您动手点一下推荐,如果有什么问题,可以在下方留言共同讨论,谢谢。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
