LINUX.ORG.RU

Ответ на: комментарий от anonymous

Я так понял, ему вообще, что-то типа такого нужно. Типа

`.*\[(.*)\].*`

или

[^\[]*\[([^\]]*)\].*

Но это примеры для RE2. Думаю, что для Onuguruma примерно то же самое. Как та у PCRE не знаю.

kostyarin_ ★★ ()
Последнее исправление: kostyarin_ (всего исправлений: 2)
Ответ на: комментарий от anonymous

Бенч говорит, что так быстрее, но это для Go RE2.

package rxpb

import (
	"regexp"
	"testing"
)

const logLine = `111.111.111.11 - - [28/Jul/2019:22:20:27 +0200] «GET /login/index.php?login=failed`

var (
	anyInside         = regexp.MustCompile(`.*\[(.*)\].*`)
	exceptLeftBracket = regexp.MustCompile(`[^\[]*\[([^\]]*)\].*`)

	gMatch string
)

func Benchmark(b *testing.B) {

	if len(anyInside.FindStringSubmatch(logLine)) != 2 {
		b.Fatal("broken regexp: anyInside")
	}

	if len(exceptLeftBracket.FindStringSubmatch(logLine)) != 2 {
		b.Fatal("broken regexp: exceptLeftBracket")
	}

	b.Run("any inside", func(b *testing.B) {
		for i := 0; i < b.N; i++ {
			gMatch = anyInside.FindStringSubmatch(logLine)[1]
		}
	})

	b.Run("except lb", func(b *testing.B) {
		for i := 0; i < b.N; i++ {
			gMatch = exceptLeftBracket.FindStringSubmatch(logLine)[1]
		}
	})

}

Результат

$ go test -benchtime=10s -bench .
# [...]
Benchmark/any_inside-4           3000000              4979 ns/op
Benchmark/except_lb-4           10000000              1826 ns/op
# [...]
kostyarin_ ★★ ()
Ответ на: комментарий от Talnah

ребята может есть идеи вот по этим логам не знаю за что зацепится как выявить неуспешную авторизацию:

[b]root верный логин ошибочный пароль[/b]

111.111.111.11 - - [31/Jul/2019:02:12:02 +0200] "POST /phpmyadmin/index.php HTTP/1.1" 200 3331 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
111.111.111.11 - - [31/Jul/2019:02:12:03 +0200] "GET /phpmyadmin/js/whitelist.php?lang=ru&db=&token=c952222222222dbb5e5cd88630980c20&v=4.6.6 HTTP/1.1" 200 487 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
111.111.111.11 - - [31/Jul/2019:02:12:03 +0200] "GET /phpmyadmin/js/messages.php?lang=ru&db=&token=c95d3fb22222222222bb5e5cd88630980c20&v=4.6.6 HTTP/1.1" 200 11283 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[b]sfsf sdsfs логин и пароль не верны[/b]

111.111.111.11 - - [31/Jul/2019:02:13:23 +0200] "POST /phpmyadmin/index.php HTTP/1.1" 200 3333 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
111.111.111.11 - - [31/Jul/2019:02:13:23 +0200] "GET /phpmyadmin/js/whitelist.php?lang=ru&db=&token=c0dbb5422222222222e9f6b750363ebbe&v=4.6.6 HTTP/1.1" 200 487 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
111.111.111.11 - - [31/Jul/2019:02:13:23 +0200] "GET /phpmyadmin/js/messages.php?lang=ru&db=&token=c0dbb52222222222222b750363ebbe&v=4.6.6 HTTP/1.1" 200 11283 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[b]root успешный логин[/b]
111.111.111.11 - - [31/Jul/2019:02:17:08 +0200] "POST /phpmyadmin/index.php HTTP/1.1" 302 37 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
111.111.111.11 - - [31/Jul/2019:02:17:08 +0200] "GET /phpmyadmin/index.php?token=c7dfac16182222222222229038652f HTTP/1.1" 200 15343 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
111.111.111.11 - - [31/Jul/2019:02:17:08 +0200] "GET /phpmyadmin/phpmyadmin.css.php?nocache=606052227ltr HTTP/1.1" 200 20106 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"


Talnah ()
Ответ на: комментарий от Talnah
  • 2хх – успешные случаи
  • 3хх – перенаправления
  • 4хх – ошибка клиента
  • 5хх – ошибка сервера

Статус и есть та самая штука, по которой можно, взглянув на логи, определить что происходит. Один и тот же запрос, для двух разных случаев – успешного и нет – будет иметь разный статус ответа. Но если клиент возвращает 2хх – это занчит успех. Т.е. для случаев, когда пользователь не авторизован (но должен бы) либо использует некорректные логин/пароль, сервер не должен возвращать двухсотые статусы.

А у Вас все случаи успешные, кроме одного перенаправления.

kostyarin_ ★★ ()