Для этого вам не нужны хакеры exec или shell_exec, это можно сделать на PHP. Книга «Вы хотите сделать ЧТО с PHP?»
Он использует сокеты и функцию pack()
, которая позволяет читать и записывать двоичные протоколы. Вам нужно создать пакет ICMP, который вы можете сделать, используя формат CCnnnA * для создания вашего пакета.
Вам нужно понять, что каждый раз, когда вы пишете шаблон, его сначала интерпретируют как строку перед тем, как читать и интерпретировать второй раз с помощью механизма регулярных выражений. Давайте расскажем, что происходит:
>>> s='\r'
s содержит символ CR.
>>> re.match('\r', s)
<_sre.SRE_Match object; span=(0, 1), match='\r'>
Здесь строка '\r'
представляет собой строку, содержащую CR, поэтому приводится литерал CR к движку регулярных выражений.
>>> re.match('\\r', s)
<_sre.SRE_Match object; span=(0, 1), match='\r'>
Строка теперь является буквальной обратной косой чертой и литералом r, механизм регулярных выражений принимает эти два символа, а так как \r
- это escape-последовательность регулярного выражения, которая также означает символ CR , вы также получаете совпадение.
>>> re.match('\\\r', s)
<_sre.SRE_Match object; span=(0, 1), match='\r'>
Строка содержит буквальный обратный слэш и литерал CR, механизм регулярных выражений получает \
и CR
, но поскольку \CR
не известен Последовательность escape-кода regex игнорируется, и вы получаете совпадение.
Обратите внимание, что для механизма регулярных выражений буквальная обратная косая черта - это escape-последовательность \\
(поэтому в строке шаблона r'\\'
или '\\\\'
)
\CR
, означает ли это, что механизм регулярного выражения беззвучно преобразует\CR
вCR
? Итак, любая неизвестная последовательность просто становится кодом (лишенным от обратной косой черты)? скажем,\X
\Y
\Z
все неизвестны, тогдаpat\Xte\Yrn\Z
также тихо станетpattern
? – AlanSTACK 4 March 2016 в 15:41re.match(r'\l', 'l')
илиre.match('\\l', 'l')
. Только обратная косая черта игнорируется, а не следующий символ:pat\Xte\Yrn\K
становитсяpatXteYrnK
для двигателя регулярных выражений. (\Z
имеет особое значение) – Casimir et Hippolyte 4 March 2016 в 15:49