|
|
|
IP-адрес
|
|||
|---|---|---|---|
|
#18+
Подскадите, как можно в фоксе заполучить IP-адрес машины в сети. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 12:25 |
|
||
|
IP-адрес
|
|||
|---|---|---|---|
|
#18+
для givi ответ от Sergey ch IP 1: ows = createobject("mswinsock.winsock") ? ows.LocalIP release ows IP 2: SET PROCEDURE TO GetIP.prg oo = CREATEOBJECT("GetIP") a = oo.GetLocalHostName() b = oo.GetHostIP( a ) ? "Local Host:", a ? "Local IP:", b DEFINE CLASS GetIP AS CUSTOM NAME = "GetIP" PROCEDURE Init DECLARE INTEGER WSAStartup IN ws2_32 INTEGER wVerRq, STRING @lpWSAData DECLARE INTEGER WSACleanup IN ws2_32 DECLARE INTEGER gethostbyname IN ws2_32 STRING hostname DECLARE INTEGER gethostname IN ws2_32; STRING @name, INTEGER namelen DECLARE RtlMoveMemory IN kernel32 As Heap2Str; STRING @Dest, INTEGER Src, INTEGER nLength ENDPROC Procedure GetLocalHostName *|-- returns the standard host name for the local machine #Define SOCKET_ERROR -1 Local lcBuffer, lnResult, lpWSAData ******************************** lpWSAData = Space(512) WSAStartup(0x0101,@lpWSAData) ******************************** lcBuffer = Space(250) lnResult = gethostname (@lcBuffer, Len(lcBuffer)) Return Iif(lnResult=0, Substr(lcBuffer, 1,At(Chr(0),lcBuffer)-1), "") Endproc FUNCTION GetHostIP (lcHostname) #DEFINE HOSTENT_SIZE 16 LOCAL lcHOSTENTptr, lcHOSTENT, lnAddrlistPtr *|-- address for the HOSTENT structure lcHOSTENTptr = gethostbyname(lcHostname) IF lcHOSTENTptr <> 0 lcHOSTENT = This.GetMemBuf( lcHOSTENTptr, HOSTENT_SIZE ) *|-- a pointer to a null-terminated list of addresses lnAddrlistPtr = This.buf2dword(SUBSTR(lcHOSTENT, 13,4)) RETURN This.GetIPfromHOSTENT(lnAddrlistPtr) ENDIF RETURN "" ENDPROC PROCEDURE GetIPfromHOSTENT (lnAddrlistPtr) *|-- retrieving IP address from the HOSTENT structure LOCAL lnDataAddress, lcResult lnDataAddress = This.buf2dword( This.GetMemBuf( lnAddrlistPtr, 4 ) ) RETURN IIF( lnDataAddress <> 0, This.GetIPAddress( This.GetMemBuf( lnDataAddress, 4 ) ), "" ) ENDPROC FUNCTION GetIPAddress (lcAddrBuf) *|-- converts 4-characters string buffer *|-- to the IP address string representation LOCAL lcResult, ii lcResult = "" FOR ii=1 TO 4 lcResult = lcResult +; LTRIM(STR(Asc(SUBSTR(lcAddrBuf, ii,1)))) +; Iif(ii=4, "",".") ENDFOR RETURN lcResult ENDPROC PROCEDURE buf2dword (lcBuffer) RETURN Asc(SUBSTR(lcBuffer, 1,1)) + ; Asc(SUBSTR(lcBuffer, 2,1)) * 256 +; Asc(SUBSTR(lcBuffer, 3,1)) * 65536 +; Asc(SUBSTR(lcBuffer, 4,1)) * 16777216 ENDPROC PROCEDURE GetMemBuf (lnAddr, lnBufsize) LOCAL lcBuffer lcBuffer = REPLICATE(Chr(0), lnBufsize) Heap2Str( @lcBuffer, lnAddr, lnBufsize ) RETURN lcBuffer ENDPROC ENDDEFINE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 18:01 |
|
||
|
IP-адрес
|
|||
|---|---|---|---|
|
#18+
puls:В Баку может быть и так пишут :) А в России вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 19:01 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33908959&tid=1591022]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 330ms |

| 0 / 0 |
