Posté le 18 juillet 2015 - 23:38 |
Procedure WS_GeoIpLatitudeLongitude()
ok, achou is boolean = False
sUrl01 is string = "https://geoiptool.com/"
sUrl02 is string = "http://www.geoipview.com/"
nInicio, nFim is int = 0
Retorno is Buffer
sHost, IP, sCidade, sEstado, sPais, sCodPais, sHoraLocal, sCodigoPostal, sLatitude, sLongitude is string = ""
HTTPTimeOut(10000)
ok = HTTPRequest(sUrl01)
IF ok = True THEN
Retorno = HTTPGetResult(httpResult)
IF PositionOccurrence(Retorno,"<html",firstRank,FromBeginning) = 0 THEN
Retorno = ""
ELSE
Retorno = Lower(Retorno) Retorno = WS_RemoveAcentos(Retorno) Retorno = Replace(Retorno,"'","") Retorno = Replace(Retorno,Charact(34),"") Retorno = Replace(Retorno,CRLF,"") Retorno = Replace(Retorno,Charact(9),"") Retorno = Replace(Retorno,Charact(13),"") Retorno = Replace(Retorno,Charact(10),"") Retorno = Replace(Retorno,Charact(13)+Charact(10),"") Retorno = Replace(Retorno,"</span><span><td>","") Retorno = Replace(Retorno,"</span><span>","") Retorno = Replace(Retorno,"</td></span></div>","") Retorno = Replace(Retorno,"<div class=data-item>","") Retorno = Replace(Retorno,"<div Class=data-item><span Class=bold>","") Retorno = Replace(Retorno,"<div class=data-item><span class=bold>","") Retorno = Replace(Retorno,"</span></div><div Class=data-item><span Class=bold>","") Retorno = Replace(Retorno,"</span></div><div class=data-item><span class=bold>","") Retorno = Replace(Retorno,"<img src=../static/img/flags/br.gif>","") Retorno = Replace(Retorno,"</span></div>","") Retorno = Lower(Retorno)
IF PositionOccurrence(Retorno,"<div class=sidebar-data hidden-xs hidden-sm style=margin-top: 5px>",firstRank,FromBeginning) > 0 THEN
nInicio = PositionOccurrence(Retorno,"<div class=sidebar-data hidden-xs hidden-sm style=margin-top: 5px>",firstRank,FromBeginning)
IF PositionOccurrence(Retorno,"<div class=mobile-button-display-hidden data-value=0>",firstRank,FromBeginning) > 0 THEN
nFim = PositionOccurrence(Retorno,"<div class=mobile-button-display-hidden data-value=0>",firstRank,FromBeginning)
Retorno = Middle(Retorno,nInicio,nFim-nInicio)
IF PositionOccurrence(Retorno,"ip address:",firstRank,FromBeginning) > 0 AND... PositionOccurrence(Retorno,"latitude:",firstRank,FromBeginning) > 0 AND... PositionOccurrence(Retorno,"longitude:",firstRank,FromBeginning) > 0 achou = True ELSE achou = False END
ELSE
IF PositionOccurrence(Retorno,"<div class=col-md-8 column>",firstRank,FromBeginning) > 0 THEN
nFim = PositionOccurrence(Retorno,"<div class=col-md-8 column>",firstRank,FromBeginning)
Retorno = Middle(Retorno,nInicio,nFim-nInicio)
IF PositionOccurrence(Retorno,"ip address:",firstRank,FromBeginning) > 0 AND... PositionOccurrence(Retorno,"latitude:",firstRank,FromBeginning) > 0 AND... PositionOccurrence(Retorno,"longitude:",firstRank,FromBeginning) > 0 achou = True ELSE achou = False END
END
END
IF achou = True
nInicio = PositionOccurrence(Retorno,"hostname:",firstRank,FromBeginning)+Length("hostname:") nFim = PositionOccurrence(Retorno,"ip address:",firstRank,FromBeginning) sHost = Middle(Retorno,nInicio,nFim-nInicio) Retorno = Middle(Retorno,nFim,Length(Retorno)) nInicio = PositionOccurrence(Retorno,"ip address:",firstRank,FromBeginning)+Length("ip address:") nFim = PositionOccurrence(Retorno,"country:",firstRank,FromBeginning) IP = Middle(Retorno,nInicio,nFim-nInicio)
Retorno = Middle(Retorno,nFim,Length(Retorno))
nInicio = PositionOccurrence(Retorno,"country:",firstRank,FromBeginning)+Length("country:") nFim = PositionOccurrence(Retorno,"country code:",firstRank,FromBeginning) sPais = Middle(Retorno,nInicio,nFim-nInicio)
Retorno = Middle(Retorno,nFim,Length(Retorno))
nInicio = PositionOccurrence(Retorno,"country code:",firstRank,FromBeginning)+Length("country code:") nFim = PositionOccurrence(Retorno,"region:",firstRank,FromBeginning) sCodPais = Middle(Retorno,nInicio,nFim-nInicio)
Retorno = Middle(Retorno,nFim,Length(Retorno))
nInicio = PositionOccurrence(Retorno,"region:",firstRank,FromBeginning)+Length("region:") nFim = PositionOccurrence(Retorno,"city:",firstRank,FromBeginning) sEstado = Middle(Retorno,nInicio,nFim-nInicio)
Retorno = Middle(Retorno,nFim,Length(Retorno))
nInicio = PositionOccurrence(Retorno,"city:",firstRank,FromBeginning)+Length("city:") nFim = PositionOccurrence(Retorno,"local time:",firstRank,FromBeginning) sCidade = Middle(Retorno,nInicio,nFim-nInicio)
Retorno = Middle(Retorno,nFim,Length(Retorno))
nInicio = PositionOccurrence(Retorno,"local time:",firstRank,FromBeginning)+Length("local time:") nFim = PositionOccurrence(Retorno,"postal code:",firstRank,FromBeginning) sHoraLocal = Middle(Retorno,nInicio,nFim-nInicio)
Retorno = Middle(Retorno,nFim,Length(Retorno))
nInicio = PositionOccurrence(Retorno,"postal code:",firstRank,FromBeginning)+Length("postal code:") nFim = PositionOccurrence(Retorno,"latitude:",firstRank,FromBeginning) sCodigoPostal = Middle(Retorno,nInicio,nFim-nInicio)
Retorno = Middle(Retorno,nFim,Length(Retorno))
nInicio = PositionOccurrence(Retorno,"latitude:",firstRank,FromBeginning)+Length("latitude:") nFim = PositionOccurrence(Retorno,"longitude:",firstRank,FromBeginning) sLatitude = Middle(Retorno,nInicio,nFim-nInicio)
Retorno = Middle(Retorno,nFim,Length(Retorno))
nInicio = PositionOccurrence(Retorno,"longitude:",firstRank,FromBeginning)+Length("longitude:") nFim = 20 sLongitude = Middle(Retorno,nInicio,nFim) sLongitude = Replace(sLongitude,"</span></div><","")
END END
END
END
IF Retorno = "" THEN
ok = HTTPRequest(sUrl02)
Retorno = HTTPGetResult(httpResult)
ok = fSaveBuffer("c:\temp\geoip.txt",Retorno)
IF PositionOccurrence(Retorno,"<html",firstRank,FromBeginning) = 0 THEN
Retorno = ""
ELSE
Retorno = Replace(Retorno,Charact(34),"") Retorno = Replace(Retorno,"'","") Retorno = "Latitude: "+ sLatitude +" Longitude: "+ sLongitude
END
END
Info(sHost, IP, sCidade, sEstado, sPais, sCodPais, sHoraLocal, sCodigoPostal, sLatitude, sLongitude )
RESULT(Retorno) |
| |
| |
|