I'm not sure exactly what you are doing, but the following works just fine in many locations (VFP 6.0 SP5). Basically, because the VCX does the direct usage of Winsock, and it's precompiled, it doesn't create a license problem! It's a simple procedure that uses Winsock to get the IP address. (Andy is one of our programmers.)
* Program....: GETIP.PRG
* Version....: 1.0
* Author.....: ** Andy Goeddeke **
* Date.......: January 8, 2002
* Return IP address as char string
* 02/04/2002 Changed the technique slightly to avoid the "Class not registered/licensed" errors.
*!* The following DOESN'T work!
*!* LOCAL loWinsock
*!* loWinSock = CREATEOBJECT("MSWinsock.Winsock"

*!* return loWinsock.LocalIP
LOCAL oForm1, lcIP
oForm1 = CREATEOBJECT("dummyform"

lcIP = oForm1.Olecontrol1.LocalIP
RELEASE oForm1
RETURN lcIP
*************************************
DEFINE CLASS dummyform AS form
DoCreate = .T.
Caption = "dummyform"
Name = "dummyform"
PROCEDURE INIT
IF .F.
** This sucks the class into the project automatically.
SET CLASS TO ep_winsock
ENDIF
THISFORM.NewObject("olecontrol1", "ep_winsock", "ep_winsock"

ENDPROC
ENDDEFINE
*** Where ep_winsock.vcx is:
**************************************************
*-- Class: ep_winsock (..\classlibs\ep_winsock.vcx)
*-- ParentClass: olecontrol
*-- BaseClass: olecontrol
*-- Time Stamp: 02/04/02 10:38:02 AM
*-- OLEObject = C:\WINNT\SYSTEM32\MSWINSCK.OCX
*
DEFINE CLASS ep_winsock AS olecontrol
Height = 100
Width = 100
Name = "ep_winsock"
ENDDEFINE
*
*-- EndDefine: ep_winsock
**************************************************
Rick