22.01.2008, 09:30 | #1 |
Участник
|
Malaysia: How to get the PC Name and IP
Источник: http://axmas.blogspot.com/2008/01/ho...me-and-ip.html
============== static void JobGetServerInfo(Args _args) { xSession curXS; int i; str GetIP(str Hostname) { DLL DLL = new DLL("ws2_32.dll"); DLL DLL2 = new DLL("kernel32"); DLLFunction CopyMemory = new DLLFunction(Dll2, "RtlMoveMemory"); DLLFunction HostInfo = new DLLFunction(DLL, "gethostbyname"); binary Dest = new binary(100); int Host; str IP; HostInfo.arg(ExtTypes::String); HostInfo.returns(ExtTypes::DWord); Host = HostInfo.call(Hostname); CopyMemory.arg(ExtTypes::Pointer, ExtTypes::DWord, ExtTypes::DWord); if(Host) { CopyMemory.call(Dest, Host, 16); if(Dest.dWord(12)) { CopyMemory.call(Dest, Dest.dWord(12), 4); if(Dest.dWord(0)) { CopyMemory.call(Dest, Dest.dWord(0), 4); IP = int2str(Dest.byte(0)) + "." + int2str(Dest.byte(1)) + "." + int2str(Dest.byte(2)) + "." + int2str(Dest.byte(3)); } } } return IP; } ; for(i = 1; i
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
22.01.2008, 15:31 | #2 |
Участник
|
Блин... У них там совсем стандартными функциями не принято пользоваться, что ли?
WinAPI::getComputerName() xSession.clientComputerName() не знаю, где функция "получить ip", но подозреваю, что где-то она есть. |
|
22.01.2008, 15:52 | #3 |
Участник
|
|
|
22.01.2008, 15:57 | #4 |
Участник
|
Стандартной, кстати, нету, насколько я знаю.
А это баян. Уже давно решение предложено АндиД Как получить IP адресс клиента? |
|
|
За это сообщение автора поблагодарили: belugin (1). |
22.01.2008, 16:04 | #5 |
Участник
|
дык... эта конструкция с копированием областей памяти и сложением строк только для получения ip? Виноват
Не может быть... Цитата:
Сообщение от kashperuk
А это баян. Уже давно решение предложено АндиД
Как получить IP адресс клиента? |
|
22.01.2008, 16:26 | #6 |
Участник
|
хм... действительнно не нашел получение ip.
зато нашел интересные классы xAxaptaUserDetail, xAxaptaUserManager кроме того, нашел WinAPI::moveMemory, которую можно использовать вместо объявления dll. |
|