>I searched
Re: Ip number Thread #
1147234 Message #
1147239I Just tested those and if you have more than one adapter (like I do) then it only returns the 1st adapter's ip address. Another option might be to do something like the first one to get the one used for the internet connection or the 2nd one and parse the file for multiple adapters/ip addresses:
oForm = CREATEOBJECT('Form')
oform.NewObject('_webbrowser','_webbrowser4',home()+'gallery\_webview.vcx')
With oform._webbrowser
.top=0
.left=0
.Navigate('http://www.whatismyip.org')
.Height = 230
.Width = 900
.visible = .f.
ENDWITH
DO WHILE oform._webbrowser.Readystate <> 3
INKEY(1)
ENDDO
MESSAGEBOX('My IP is '+ CHRTRAN(oform._webbrowser.Document.Body.InnerHtml,'',''))
oform.RemoveObject("_webbrowser")
RELEASE oform
2nd:
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)
MESSAGEBOX(lcLocalIP)
ENDIF
>
>>>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 (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)
>> ? 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
>>
.·*´¨)
.·`TCH
(..·*
010000110101001101101000011000010111001001110000010011110111001001000010011101010111001101110100
"When the debate is lost, slander becomes the tool of the loser." - Socrates
Vita contingit, Vive cum eo. (Life Happens, Live With it.)
"Life is not measured by the number of breaths we take, but by the moments that take our breath away." -- author unknown
"De omnibus dubitandum"