Aqui lo dejo por si alguien mas lo quiere probar o para que opinen mejoras en el codigo que se le puedan hacer.
Importante: Solo funciona en mexico con los modems infinitum de TELMEX y la configuracion del modem no debe tener PASS.
Caracteristicas:
- La ventana siempre ocupa la misma posicion respetando la configuracion de pantalla y la altura de la barra de win.
- El proceso se cicla hasta que la ip nueva sea diferente a la anterior
Aqui el ejecutable: http://cid-63f73466a83d3f7b.skydrive.li ... ngerIP.exe
Aqui el codigo:
Código: Seleccionar todo
#include <IE.au3>
#include <INet.au3>
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ProgressConstants.au3>
#include <EditConstants.au3>
Opt("TrayMenuMode", 1)
$url = "http://home/xslt?PAGE=B05&THISPAGE=B01&NEXTPAGE=B05"
$winbar_altura = WinGetClientSize("[CLASS:Shell_TrayWnd]")
$winpos_y = @DesktopHeight - 149 - $winbar_altura[1]
GuiCreate("ChangerIP", 150, 121, @DesktopWidth - 156, $winpos_y, -1, BitOR ($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST))
GUISetBkColor(0xF2FFF2)
$runb = GUICtrlCreateButton ("Change", 10, 10, 50, 25, -1 )
$BProgres = GUICtrlCreateProgress ( 70, 10, 70, 25 , $PBS_SMOOTH )
$edit = GUICtrlCreateEdit("Event Log"& @CRLF, 10, 45, 130, 60, BitOR ($ES_AUTOVSCROLL,$ES_READONLY))
GUICtrlSetFont(-1, 8.5, 400, 0, "Arial")
$Label = GUICtrlCreateLabel("About", 112, 106, 32, 17)
GUICtrlSetTip($Label, "By JEFF", "ChangerIP V1.0" , 1,1)
GuiSetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $runb
GUICtrlSetState ( $runb, $GUI_DISABLE )
GUICtrlSetData ($BProgres, 10)
GUICtrlSetData ($edit, "Getting Current IP" & @CRLF, 1)
$PublicIP = _GetIP()
$Ipant = $PublicIP
GUICtrlSetData ($edit, "Ip : "&$PublicIP&@CRLF, 1)
while $PublicIP = $Ipant
$l = StringLen ( $PublicIP )
local $ip[4]
$i = 0
$j = 1
while $i <= 2
while $j <= $l
$var = StringMid ( $PublicIP , $j, 1)
if $var = "." Then
$i = $i +1
$j = $j +1
Else
$ip[$i] = $ip[$i]&$var
$j = $j +1
EndIf
WEnd
WEnd
$ip[3] = $ip[3]+1
$newip = StringFormat ("%d.%d.%d.%d",$ip[0],$ip[1],$ip[2],$ip[3])
Desconectar ()
Sleep (1000)
Conectar ()
$Ipant = _GetIP()
WEnd
GUICtrlSetData ($BProgres, 95)
GUICtrlSetData ($edit, "Success IP Changed" & @CRLF, 1)
GUICtrlSetData ($edit, "Old : " &$PublicIP&@CRLF, 1)
GUICtrlSetData ($edit, "New : "&$Ipant, 1)
GUICtrlSetState ( $runb, $GUI_ENABLE )
EndSelect
WEnd
Func Desconectar()
GUICtrlSetData ($BProgres, 30)
GUICtrlSetData ($edit, "Closing Connection" & @CRLF, 1)
$oIE = _IECreate ($url, 0, 0)
$oForm = _IEFormGetObjByName ($oIE, "pagepost")
GUICtrlSetData ($BProgres, 45)
_IEFormElementRadioSelect ($oForm ,"FALSE", "IP_DYNAMIC", 1, "byValue")
Sleep (250)
$oQuery1 = _IEFormElementGetObjByName ($oForm, "IP_BBAND_ADDR")
_IEFormElementSetValue ($oQuery1, $newip)
_IEFormSubmit ($oForm)
WinClose ("Enlace de banda")
GUICtrlSetData ($BProgres, 60)
GUICtrlSetData ($edit, "Reset Succes" & @CRLF, 1)
EndFunc
Func Conectar ()
GUICtrlSetData ($BProgres, 75)
GUICtrlSetData ($edit, "Getting New IP" & @CRLF, 1)
$oIE = _IECreate ($url, 0, 0)
GUICtrlSetData ($BProgres, 80)
$oForm = _IEFormGetObjByName ($oIE, "pagepost")
_IEFormElementRadioSelect ($oForm ,"TRUE", "IP_DYNAMIC", 1, "byValue")
Sleep (250)
_IEFormSubmit ($oForm)
WinClose ("Enlace de banda")
EndFunc