powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как получить имя клиентского хоста и сетевое имя пользователя?
7 сообщений из 7, страница 1 из 1
Как получить имя клиентского хоста и сетевое имя пользователя?
    #34556309
Федор400
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как получить имя клиентского хоста и сетевое имя пользователя?
Подойдет реализация через функцию на C++, но как получить атрибуты текущего
соединения?
...
Рейтинг: 0 / 0
Как получить имя клиентского хоста и сетевое имя пользователя?
    #34556345
СергейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Федор400Как получить имя клиентского хоста и сетевое имя пользователя?
Подойдет реализация через функцию на C++, но как получить атрибуты текущего
соединения?

Vam syuda
...
Рейтинг: 0 / 0
Как получить имя клиентского хоста и сетевое имя пользователя?
    #34556459
Федор400
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но в указанной вами ссылке http://]http://www.postgresql.org/docs/8.2/static/functions-info.html
нет возможности получить имя клиенского хоста, а только его IP. Аналогично нет и функции для получения сетевого имени пользователя, а только функции для получения имени SQL-пользователя.

Т.е. получается, что информация о хосте выражена очень бедно?

Если-же делать C++ функцию (в своей dll), то как получить доступ к информации о текущем соединении на уровне сокетов?
...
Рейтинг: 0 / 0
Как получить имя клиентского хоста и сетевое имя пользователя?
    #34556482
СергейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Федор400Но в указанной вами ссылке http://]http://www.postgresql.org/docs/8.2/static/functions-info.html
нет возможности получить имя клиенского хоста, а только его IP. Аналогично нет и функции для получения сетевого имени пользователя, а только функции для получения имени SQL-пользователя.

Т.е. получается, что информация о хосте выражена очень бедно?


Pardon, a kakoe Postgresu delo do imeni hosta? Ono mojet 125 raz izmenitsia za vremia soedinenia, i chto Postgresu vse vremia DNS zaprosy delat' ?
Tak chto sami delaite na C obratnyy DNS zapros po IP-shniku, i vse.

A chto podozrevaetsia pod setevym imenem polzovatelia, ia voobshe ne ponial...
...
Рейтинг: 0 / 0
Как получить имя клиентского хоста и сетевое имя пользователя?
    #34559763
ShadyAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как в Postgresql узнать список процессов, запущенных на машине клиента?
:)
...
Рейтинг: 0 / 0
Как получить имя клиентского хоста и сетевое имя пользователя?
    #34560571
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShadyAngelА как в Postgresql узнать список процессов, запущенных на машине клиента?
:)
Ээээ, а еще он кофе варить не умеет. Да и пылесосит с трудом.

Может чего другого нужно или сформулированно не совсем корректно? А то как бы не СУБДшная зада малость. Особенно под юних-лайк системами.
...
Рейтинг: 0 / 0
Как получить имя клиентского хоста и сетевое имя пользователя?
    #34562081
Федор400
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне и надо на C писать. Но нужен доступ к соединению (т.е. структуре Winsock). В ядре PostgreSQL
реализована функция
Код: plaintext
inet_client_addr ()
. Но ее доступ к атрибутам текущего соединения весьма специфичен и не экспортируется наружу библиотеками PostgreSQL. А доступ нужен, т.к. рабочая станция может иметь несколько IP адресов и несколько сетевых карт. Вот, кстати, незамысловатый код этой функции:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Datum
inet_client_addr(PG_FUNCTION_ARGS)
{
	Port	   *port = MyProcPort;
	char		remote_host[NI_MAXHOST];
	int			ret;

	if (port == NULL)
		PG_RETURN_NULL();

	switch (port->raddr.addr.ss_family)
	{
		case AF_INET:
#ifdef HAVE_IPV6
		case AF_INET6:
#endif
			break;
		default:
			PG_RETURN_NULL();
	}

	remote_host[ 0 ] = '\0';

	ret = pg_getnameinfo_all(&port->raddr.addr, port->raddr.salen,
							 remote_host, sizeof(remote_host),
							 NULL,  0 ,
							 NI_NUMERICHOST | NI_NUMERICSERV);
	if (ret)
		PG_RETURN_NULL();

	PG_RETURN_INET_P(network_in(remote_host, false));
}

Но откуда взять
Код: plaintext
MyProcPort
???
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как получить имя клиентского хоста и сетевое имя пользователя?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]