Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Get my IP Address
Message
From
04/03/2010 10:13:50
 
 
To
04/03/2010 09:56:22
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
Miscellaneous
Thread ID:
01452426
Message ID:
01452498
Views:
60
Thank you. Works as needed.


>>Hi Al,
>>
>>How can I know my IP address from VFP? I have code for using the WBEM Scripting Object to interogate the network card but not sure how to get the IP address.
>>
>>TIA.
>
>This was posted here on the UT previously (I don't have search capability so I can't find it again and determine the author):
>
>
>CLEAR
>*1========================
>local lcTempFile, loWSH, lcLocalIP
>lcTempFile="LocalIP.txt"
>if file(lcTempfile)		&&erase leftovers from old run
>  erase (lcTempFile)
>endif
>loWSH=CreateObject("Wscript.Shell")
>loWSH.run("command /c ipconfig > "+lcTempfile,0,1)
>if file(lcTempFile)		&&read the file and parse it
>  lcLocalIP=upper(filetostr(lcTempFile))
>  lcLocalIP=substr(lcLocalIP, at('IP ADDRESS',lcLocalIP))
>  lcLocalIP=substr(lcLocalIP, at(':',lcLocalIP)+2)
>  lcLocalIP=substr(lcLocalIP, 1, at(chr(13),lcLocalIP)-1)
>  ? lcLocalIP
>  *messagebox(lcLocalIP)
>endif
>
>
>*2========================
>oSocket = CreateObject("MSWinsock.Winsock")
>? oSocket.LocalIP
>
>*3==========================
>local lcTempFile, loWSH, lcLocalIP
>lcTempFile="LocalIP.txt"
>if file(lcTempfile)	
>  erase (lcTempFile)
>endif
>loWSH=CreateObject("Wscript.Shell")
>loWSH.run("command /c ipconfig > "+lcTempfile,0,1)
>if file(lcTempFile)
>  lcLocalIP=upper(filetostr(lcTempFile))
>  lcLocalIP=substr(lcLocalIP, at('IP ADDRESS',lcLocalIP))
>  lcLocalIP=substr(lcLocalIP, at(':',lcLocalIP)+2)
>  lcLocalIP=substr(lcLocalIP, 1, at(chr(13),lcLocalIP)-1)
>endif
>IF !EMPTY(lcLocalIP)
>  ? lcLocalIP
>  ? [Mac Address: ] +IpToMacAddress(lcLocalIP)
>ENDIF
>RETURN
>
>FUNCTION IpToMacAddress(lcIP)
>        DECLARE INTEGER inet_addr IN ws2_32.dll STRING cIP
>        DECLARE INTEGER SendARP IN iphlpapi.dll;
>                INTEGER destIP, INTEGER sourceIP,;
>                STRING @ pMacAddr, INTEGER @ PhyAddrLen
>        LOCAL lnHr, lnIpAddr, lcMacAddr, lnLen
>        lnIpAddr = inet_addr(lcIp)
>        lcMacAddr = REPLICATE(CHR(0),6)
>        lnLen = 6
>        lnHr = SendARP(lnIpAddr,0,@lcMacAddr,@lnLen)
>        RETURN BinaryToMac(lcMacAddr,lnLen)
>ENDFUNC
>
>FUNCTION BinaryToMac(lcMacAddr, lnLen)
>        LOCAL lcMac, xj
>        lcMac = ""
>        FOR xj = 1 TO lnLen - 1
>                lcMac = lcMac + RIGHT(TRANSFORM(ASC(;
>                        SUBSTR(lcMacAddr,xj,1)),"@0"),2) + ":"
>        ENDFOR
>        lcMac = lcMac + RIGHT(TRANSFORM(ASC(;
>                SUBSTR(lcMacAddr,lnLen,1)),"@0"),2)
>        RETURN lcMac
>ENDFUNC
>
>*4========================
>
>PUBLIC IPSocket
>crlf=CHR(13)+CHR(10)
>* Show local ip address
>IPSocket = CREATEOBJECT("MSWinsock.Winsock")
>IF TYPE('IPSocket')='O'
>	IPAddress = IPSocket.LocalIP
>	localhostname=IPSocket.localhostname
>	remotehost=IPSocket.remotehost
>	remotehostip=IPSocket.remotehostip
>	lcMsg = "Local IP = " + IPAddress+crlf+"local host = "+localhostname;
>		+crlf+"Remotehost = "+remotehost+crlf+"Remotehostip = "+remotehostip
>	?lcMsg
>	*MessageBox(lcMsg)
>ELSE
>	lcMsg = "Winsock is Not Installed"
>	?lcMsg
>	*MESSAGEBOX ("Winsock Is Not Installed!")
>ENDIF
>
>
>
>and this one:
>
>
>clear
>DECLARE INTEGER GetAdaptersInfo IN iphlpapi;
>	STRING @pAdapterInfo, ;
>	LONG @pOutBufLen
>
>LOCAL ;
>	Buffer, ;
>	Bufsize
>
>Bufsize	= 4096
>Buffer	= REPL(CHR(0), Bufsize)
>Local lcLocalIP, lcGateway
>IF GetAdaptersInfo(@Buffer, @Bufsize) = 0
>	lcLocalIP = STRTRAN(SUBSTR(Buffer, 433,15), CHR(0), "")
>	lcGateway = STRTRAN(SUBSTR(Buffer, 473,15), CHR(0), "")
>	? "Local IP: "+lcLocalIP
>	? "Gateway:  "+lcGateway
>ENDIF
>
>IF !EMPTY(lcLocalIP)
>  ?
>  ? "IP Used to Obtain Mac Address: "+lcLocalIP
>  ? "Mac Address: "+IpToMacAddress(lcLocalIP)
>ENDIF
>RETURN
>
>FUNCTION IpToMacAddress(lcIP)
>        DECLARE INTEGER inet_addr IN ws2_32.dll STRING cIP
>        DECLARE INTEGER SendARP IN iphlpapi.dll;
>                INTEGER destIP, INTEGER sourceIP,;
>                STRING @ pMacAddr, INTEGER @ PhyAddrLen
>        LOCAL lnHr, lnIpAddr, lcMacAddr, lnLen
>        lnIpAddr = inet_addr(lcIp)
>        lcMacAddr = REPLICATE(CHR(0),6)
>        lnLen = 6
>        lnHr = SendARP(lnIpAddr,0,@lcMacAddr,@lnLen)
>        RETURN BinaryToMac(lcMacAddr,lnLen)
>ENDFUNC
>
>FUNCTION BinaryToMac(lcMacAddr, lnLen)
>        LOCAL lcMac, xj
>        lcMac = ""
>        FOR xj = 1 TO lnLen - 1
>                lcMac = lcMac + RIGHT(TRANSFORM(ASC(;
>                        SUBSTR(lcMacAddr,xj,1)),"@0"),2) + ":"
>        ENDFOR
>        lcMac = lcMac + RIGHT(TRANSFORM(ASC(;
>                SUBSTR(lcMacAddr,lnLen,1)),"@0"),2)
>        RETURN lcMac
>ENDFUNC
>
In the End, we will remember not the words of our enemies, but the silence of our friends - Martin Luther King, Jr.
Previous
Reply
Map
View

Click here to load this message in the networking platform