Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / как узнать IP адрес компьютера? / 13 сообщений из 13, страница 1 из 1
02.04.2008, 12:24
    #35229462
roleks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
как узнать IP адрес компьютера на котором запускается программа?
...
Рейтинг: 0 / 0
02.04.2008, 12:51
    #35229595
ВасВас
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
SELECT CONNECTION_PROPERTY ('NodeAddress')
...
Рейтинг: 0 / 0
02.04.2008, 13:01
    #35229640
roleks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
а если я не подключен к базе
...
Рейтинг: 0 / 0
02.04.2008, 14:13
    #35229905
ИвановНН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
см. WinApi
вот рабочий пример на C++ (можно переделать под PB)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
PMIB_IPADDRTABLE pIPAddrTable = NULL;
try {
	DWORD dwSize =  0 ;
	GetIpAddrTable(pIPAddrTable, &dwSize, FALSE);
	pIPAddrTable = (PMIB_IPADDRTABLE)LocalAlloc(LMEM_ZEROINIT, dwSize);
	DWORD r = GetIpAddrTable(pIPAddrTable, &dwSize, TRUE);
	if (r != NO_ERROR) throw "error!";
	for (int i =  0 ; i < pIPAddrTable->dwNumEntries; i++) {
		DWORD addr = pIPAddrTable->table[i].dwAddr;
		printf("\tAddress: %d.%d.%d.%d\n", addr & 0x000000FF, (addr & 0x0000FF00) >>  8 , (addr & 0x00FF0000) >>  16 , (addr & 0xFF000000) >>  24 );
		printf("\tMask:    %ld\n", pIPAddrTable->table[i].dwMask);
		printf("\tIndex:   %ld\n", pIPAddrTable->table[i].dwIndex);
		printf("\tBCast:   %ld\n", pIPAddrTable->table[i].dwBCastAddr);
		printf("\tReasm:   %ld\n", pIPAddrTable->table[i].dwReasmSize);
		printf("\t-------------------------\n");
	}
}
catch(...) {
	printf("\terror");
}
if (pIPAddrTable != NULL) LocalFree(pIPAddrTable);
pIPAddrTable == NULL;
return  0 ;
...
Рейтинг: 0 / 0
02.04.2008, 14:37
    #35229998
Black Savage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
TO ИвановНН

Все давно написано
...
Рейтинг: 0 / 0
02.04.2008, 14:53
    #35230082
ИвановНН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
Black SavageВсе давно написаноОтличный вариант -- значительно проще.
...
Рейтинг: 0 / 0
09.04.2008, 19:32
    #35246542
VadimSokha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
А чем плоха выборка значения из поля DhcpIPAddress раздела Registry:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\{D141EC0B-7618-4388-AF0E-31F889F1404E}\Parameters\Tcpip
?
...
Рейтинг: 0 / 0
09.04.2008, 20:30
    #35246630
ИвановНН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
больше похоже на хакерство :-)
Лучше все-таки пользоваться функциями, к тому же доступ к таким разделам реестра может быть закрыт.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
03.01.2010, 14:55
    #36396177
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
Вот пример: http://www.rgagnon.com/pbdetails/pb-0132.html
Но нужен pbws32.dll. Как можно обойтись без него (использовать только Виндосовские dll-и)?
...
Рейтинг: 0 / 0
03.01.2010, 18:31
    #36396287
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
RiskaВот пример: http://www.rgagnon.com/pbdetails/pb-0132.html
Но нужен pbws32.dll. Как можно обойтись без него (использовать только Виндосовские dll-и)?
Если тебе совсем скучно, можешь попробовать перевести вот это на эхотаг. Сомневаюсь, что это получится, но попытка, как известно, не пытка .
...
Рейтинг: 0 / 0
04.01.2010, 09:40
    #36396538
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
[script]
Код: plaintext
1.
nvuo_winsock_ip lnvuo_winsock_ip
lnvuo_winsock_ip.uf_get_ip_address()

[nvuo]
Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
$PBExportHeader$nvuo_winsock_ip.sru
forward
global type nvuo_winsock_ip from nonvisualobject
end type
type hostent from structure within nvuo_winsock_ip
end type
type wsadata from structure within nvuo_winsock_ip
end type
end forward

type hostent from structure
	unsignedlong		h_name
	unsignedlong		h_aliases
	integer		h_addrtype
	integer		h_length
	unsignedlong		h_addr_list
end type

type wsadata from structure
	unsignedinteger		version 
	unsignedinteger		highversion 
	character		description[ 257 ] 
	character		systemstatus[ 129 ] 
	unsignedinteger		maxsockets 
	unsignedinteger		maxupddg 
	string		 vendorinfo 
end type

global type nvuo_winsock_ip from nonvisualobject autoinstantiate
end type

type prototypes
Function integer gethostname (	Ref string name, integer namelen) Library "ws2_32.dll" Alias for "gethostname;Ansi"
Function ulong gethostbyname (string name	) Library "ws2_32.dll" Alias for "gethostbyname;Ansi"

Subroutine CopyMemoryIP (	Ref hostent Destination, ulong Source, long Length) Library  "kernel32.dll" Alias For "RtlMoveMemory"
Subroutine CopyMemoryIP (	Ref blob Destination, ulong Source, long Length) Library  "kernel32.dll" Alias For "RtlMoveMemory"
Subroutine CopyMemoryIP (	Ref ulong Destination, ulong Source, long Length) Library  "kernel32.dll" Alias For "RtlMoveMemory"

Function long WSAStartup ( long wVersionRequested, Ref wsadata lpWSAData) Library "ws2_32.dll"
Function long WSACleanup () Library "ws2_32.dll"
end prototypes

type variables

end variables

forward prototypes
public function string uf_get_ip_address ()
end prototypes

public function string uf_get_ip_address ();string ls_hostname, ls_ipaddress
nvuo_winsock_ip gn_ping
Integer li_rc, li_namelen
Blob lblb_ipaddr
hostent lstr_host
ULong lul_ptr, lul_ipaddr

li_namelen =  32 
ls_hostname = Space(li_namelen)

li_rc = gethostname(ls_hostname, li_namelen)
If li_rc <>  0  Then
	MessageBox('ERROR', "Error in uf_get_ip_address")
	RETURN 'ERROR'
End If

// get information about host
lul_ptr = gethostbyname(ls_hostname)

If lul_ptr >  0  Then
	// copy structure to local structure
	CopyMemoryIP(lstr_host, lul_ptr,  16 )
	
	// get memory address where ipaddress is located
	CopyMemoryIP(lul_ipaddr, lstr_host.h_addr_list,  4 )
	
	// copy ipaddress to local blob
	lblb_ipaddr = Blob(Space( 4 ),EncodingAnsi!)
	CopyMemoryIP(lblb_ipaddr, lul_ipaddr,  4 )
	
	// Get string from blob
	ls_ipaddress  = String(AscA(String(BlobMid(lblb_ipaddr, 1 , 1 ),EncodingAnsi!)),"##0") + "."
	ls_ipaddress += String(AscA(String(BlobMid(lblb_ipaddr, 2 , 1 ),EncodingAnsi!)),"##0") + "."
	ls_ipaddress += String(AscA(String(BlobMid(lblb_ipaddr, 3 , 1 ),EncodingAnsi!)),"##0") + "."
	ls_ipaddress += String(AscA(String(BlobMid(lblb_ipaddr, 4 , 1 ),EncodingAnsi!)),"##0")
Else
	MessageBox('ERROR', "Error in uf_get_ip_address")
	RETURN 'ERROR'
End If

messagebox('IP-address', ls_ipaddress)

RETURN ls_ipaddress
end function

on nvuo_winsock_ip.create
call super::create
TriggerEvent( this, "constructor" )
end on

on nvuo_winsock_ip.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on

event constructor;wsadata lstr_wsadata
Long ll_rc

// initialize Winsock
ll_rc = WSAStartup( 257 , lstr_wsadata)
If ll_rc <>  0  Then
	MessageBox('ERROR', "WSAStartup Error in constructor")
End If

end event

event destructor;// cleanup Winsock
WSACleanup()

end event
...
Рейтинг: 0 / 0
07.01.2010, 02:40
    #36399610
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
14.05.2013, 17:08
    #38256981
bce_ok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как узнать IP адрес компьютера?
А можно для особо одаренный объяснить :)
попробовала http://www.rgagnon.com/pbdetails/pb-0132.html

в результате GetHostName возвращает квардатики,
и ls_ip получается 0.0.0.0

А вообще задача такая:
Надо перед отправкой письма определить локально пользователь подключился или удаленно (нужно для настройки cdo)
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / как узнать IP адрес компьютера? / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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