bahram_m
سه شنبه 29 دی 1388, 11:03 صبح
برای راه اندازی انواع پرفراژدر برنامه احتیاج به نام وip کامپیوترهای داخل شبکه دارم لطفا راهنماییم کنید
kia1349
سه شنبه 29 دی 1388, 12:30 عصر
یه برنامه توی سایت www.universalthread.com هست بنام ADVFP.zip
میتونید از سورس اون کمک بگیرید
اینم یه مثال تقریبا مشابه:
http://www.tek-tips.com/faqs.cfm?fid=3356
اینم یه کد
DO decl
IF InitWinsock()
LOCAL lcLocalHost, lcLocalIP
lcLocalHost = GetLocalHostName()
lcLocalIP = GetHostIP(lcLocalHost)
? "Local Host:", lcLocalHost
? "Local IP:", lcLocalIP
= WSACleanup()
ENDIF
* End of Main
FUNCTION GetLocalHostName
* returns the standard host name for the local machine
#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
* address for the HOSTENT structure
lcHOSTENTptr = gethostbyname(lcHostname)
IF lcHOSTENTptr <> 0
lcHOSTENT = GetMemBuf (lcHOSTENTptr, HOSTENT_SIZE)
* a pointer to a null-terminated list of addresses
lnAddrlistPtr = buf2dword(SUBSTR(lcHOSTENT, 13,4))
RETURN GetIPfromHOSTENT (lnAddrlistPtr)
ENDIF
RETURN ""
PROCEDURE GetIPfromHOSTENT (lnAddrlistPtr)
* retrieving IP address from the HOSTENT structure
LOCAL lnDataAddress, lcResult
lnDataAddress = buf2dword(GetMemBuf (lnAddrlistPtr, 4))
RETURN Iif(lnDataAddress <> 0, GetIPAddress(GetMemBuf(lnDataAddress, 4)), "")
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
FUNCTION InitWinsock()
* Initializing the Winsock service for the application
#DEFINE WSADATA_SIZE 398
#DEFINE WS_VERSION 514 && 0x0202
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
bahram_m
چهارشنبه 30 دی 1388, 11:58 صبح
ممنون دوست عزیز
ایا میشه با یک دستور نام کامپیوتر رو ریخت داخل متغیر
Esikhoob
چهارشنبه 30 دی 1388, 19:58 عصر
با سلام
SYS(0)
و یا
ID()
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.