ďťż
 
VFP 6 ďťż
 
VFP 6
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

VFP 6



Zbigniew Grzelczak - 10-06-2006 00:03
VFP 6
  Czy można z poziomu VFP6 uzyskać nr IP sieci localnej, na którym jesteśmy?
Jeśli trzeba sięgnąć do API, to czy ktoś widział gdzieś jakieś przykłady?

Pozdrawiam





Kazimierz Pszenny - 13-06-2006 01:11

  *Ja stosuję to:

DO decl

*************************
IF InitWinsock()
x_lcLocalHost = GetLocalHostName()
x_lcLocalIP = GetHostIP(x_lcLocalHost)
komputer_nazwa = x_lcLocalHost && nazwa komputera
komputer_ip = x_lcLocalIP && numer_IP_komputera
= WSACleanup()
ENDIF
*************************

FUNCTION GetLocalHostName
#DEFINE SOCKET_ERROR -1
LOCAL lcBuffer, lnResult
lcBuffer = SPACE(250)
lnResult = gethostname (@lcBuffer, Len(lcBuffer))
RETURN Iif(lnResult=0, SUBSTR(lcBuffer, 1,AT(Chr(0),lcBuffer)-1), "")

FUNCTION GetHostIP (lcHostname)
#DEFINE HOSTENT_SIZE 16
LOCAL lcHOSTENTptr, lcHOSTENT, lnAddrlistPtr

lcHOSTENTptr = gethostbyname(lcHostname)

IF lcHOSTENTptr <> 0
lcHOSTENT = GetMemBuf (lcHOSTENTptr, HOSTENT_SIZE)

lnAddrlistPtr = buf2dword(SUBSTR(lcHOSTENT, 13,4))
RETURN GetIPfromHOSTENT (lnAddrlistPtr)
ENDIF
RETURN ""

PROCEDURE GetIPfromHOSTENT (lnAddrlistPtr)
LOCAL lnDataAddress, lcResult
lnDataAddress = buf2dword(GetMemBuf (lnAddrlistPtr, 4))
RETURN Iif(lnDataAddress <> 0, GetIPAddress(GetMemBuf(lnDataAddress,
4)), "")

FUNCTION GetIPAddress (lcAddrBuf)
LOCAL lcResult, ii
lcResult = ""
FOR ii=1 TO 4
lcResult = lcResult +;
LTRIM(STR(Asc(SUBSTR(lcAddrBuf, ii,1)))) +;
Iif(ii=4, "",".")
ENDFOR
RETURN lcResult

FUNCTION InitWinsock()
#DEFINE WSADATA_SIZE 398
#DEFINE WS_VERSION 514
LOCAL lcWSADATAln, lnInitResult
lcWSADATA = Repli(Chr(0), WSADATA_SIZE)
lnInitResult = WSAStartup (WS_VERSION, @lcWSADATA)
RETURN (lnInitResult = 0)

FUNCTION GetMemBuf (lnAddr, lnBufsize)
LOCAL lcBuffer
lcBuffer = Repli(Chr(0), lnBufsize)
= Heap2Str (@lcBuffer, lnAddr, lnBufsize)
RETURN lcBuffer

FUNCTION 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

PROCEDURE decl
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

Pozdrawiam
Kazimierz Pszenny
http://jagasoftware.pl

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




Zbigniew Grzelczak - 14-06-2006 02:58

  Bardzo dziękuję za wyczerpującą odpowiedź.
Mam co czytać.

Pozdrawiam
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    VFP 8 i problem z polskimi znakami przy otwieraniu dbf-a z dosowego Fox-a probl.z komunikatem "Class definition WORD.APPLICATION is not found" w VFP 6 [VFP 8] tryb edycji formantu TextBox [MySQL] i [VFP] Banalne - niebanalne zapytanie transmisja plików za pomocą FTP w VFP 6 problem z zagnieżdżonym zapytaniem sql + VFP [VFP] polskie znaki (Menu) VFP 6 drukowanie tablicy w raporcie [VFP 9] Cudzyslow w pliku txt VFP9: petycja w sprawie VFP
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • chinska-zupka.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com