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