Каков самый простой способ настроить регистратор HTTP-запросов

Одинарная строка awk для первого случая:

awk '/^test1/{file++; on=1} on{print >("newfile" file ".txt")} /^test2/{on=0}' file.txt

, которая говорит:

  • If test1 , увеличить номер файла и начать вывод (т.е. включить )
  • Если включено, вывести строку с именем файла «newfileFILE.txt», где FILE - это номер файла.
  • Если найден test2 , завершить вывод (т.е. выключить)

Затем вы можете преобразовать два файла в newfile.txt с помощью оболочки oneliner:

for file in newfile?.txt; do tr -d '\n' <$file; echo; done > newfile.txt

который говорит, что foreach файл, удалите все переводы строки.

1
22.06.2018, 16:06
2 ответа

Вы можете использовать netcat. Что-то вроде:

nc -l 34331

Если вы хотите увидеть подробности вызова, было бы проще использовать опцию -vcurl и позвонить в реальную службу.

curl -v http://www.google.com > /dev/null
* Connected to localhost (127.0.0.1) port 3128 (#0)
> GET http://www.google.com/ HTTP/1.1
> Host: www.google.com
> User-Agent: curl/7.47.0
> Accept: */*
> Proxy-Connection: Keep-Alive
> 
< HTTP/1.1 200 OK
< Date: Fri, 22 Jun 2018 12:58:58 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
< Server: gws
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< Set-Cookie: 1P_JAR=2018-06-22-12; expires=Sun, 22-Jul-2018 12:58:58 GMT; path=/; domain=.google.com
< Set-Cookie: NID=132=cLF8pa3SHRsg32-ZGzN5aZ3ipLfAbxqfmUvJ2NTvkYg2eWN6XaOqSofMK7o902-C9hdxL_wUn6cJW2AkngcQXvNUKCCdNi7Z-eBTu0Yc8-iTFR90OeZDR44hxZK95_Ny; expires=Sat, 22-Dec-2018 12:58:58 GMT; path=/; domain=.google.com; HttpOnly
< Accept-Ranges: none
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=ISO-8859-1
< Connection: keep-alive
< Proxy-Connection: keep-alive
< 
{ [2035 bytes data]
100 11564    0 11564    0     0  69134      0 --:--:-- --:--:-- --:--:-- 68833
* Connection #0 to host localhost left intact
2
27.01.2020, 23:32

Если у вас установлен Perl, можно написать очень простой http-демон, используя HTTP ::Модуль демона (, который вам необходимо иметь в ваших Perl-библиотеках):

#!/usr/bin/perl
use strict;
use HTTP::Daemon;
use HTTP::Response;
use threads;

my $httpd = HTTP::Daemon->new( LocalPort => 8081, Listen => 20, Reuse=>1) || die;
print "httpd started...\n";

sub process_one_req
{
  my $con = shift;
  my $rq = $con->get_request;

  print "<< ".$rq->uri." : ".$rq->header('User-Agent')."\n";

  my $rsp = HTTP::Response->new(200, 'OK' );
  $con->send_response($rsp);
} 

while (my $con = $httpd->accept)
{
 process_one_req $con;
}

см. такжеhttps://metacpan.org/pod/HTTP::Daemon

0
27.01.2020, 23:32

Теги

Похожие вопросы