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!") ENDIFand 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