terça-feira, 13 de janeiro de 2015

O Campo TTL do Comando PING



TTL – É um campo existente no cabeçalho do Pacote IP que tem por finalidade evitar que o mesmo  fique rodando em loop infinito na rede. Ele é decrementado de uma unidade por segundo toda vez que passa por uma gateway.

Pois bem, há uma certa confusão com relação ao TTL que faz muita gente relaciona-lo com o numero de saltos, visto que, ao passar por cada gateway, ao menos um valor de TTL deve ser decrementado, ainda que o pacote não tenha ficado por lá por 1 segundo. Entretanto, o roteador pode decrementar mais de uma unidade TTL por segundo que este pacote tenha permanecido por lá. Assim, o TTL realmente expressa unidades de tempo e não de saltos”
http://netfindersbrasil.blogspot.com.br/2009/12/entendendo-o-campo-ttl-time-to-live.html


O padrão de alguns sistemas operacionais para o campo TTL do Ping:
·         UNIX – Valor = 255
·         WINDOWS – Valor = 128
·         LINUX – Valor = 64

Este campo pode ser usado por um invasor para descobrir o sistema operacional usado. Para evitar isto, pode-se alterar o valor do TTL padrão dificultando um pouco a vida dos invasores.

Para alterar o o valor de TTl no Windows, é necessário alterar o registro:
1       Iniciar – executar – regedit.exe
2              Localize a seguinte chave:
   HKEY_LOCAL_MACHINE\SYSTEM\CorrentControlSet\Services\Tcpip\Parameters
3  
   Localize a DWORD chamado DefaultTTL e edite o seu valor
Se ela não existir, Clique em Editar, Novo – Valor da Cadeia de Caracteres, depois coloque o valor desejado para o TTL.

Função Excel para retornar o último dia do mês

Function UltimoDiaDoMes(Ano As Integer, Mes As Integer) As Integer
    '1) Para um ano ser bisexto, ele deve ser divisível por 4,
    '   não pode ser por 100, exceto se for por 400
    '2) Retorna -1 se o mês for menor que 1 ou maior que 12
    Dim bEbissexto As Boolean
  
    If Ano Mod 4 = 0 Then
        If Ano Mod 100 = 0 Then
            If Ano Mod 400 = 0 Then
                bEbissexto = True
            Else
                bEbissexto = False
            End If
        Else
            bEbisexto = True
        End If
    Else
        bEbissexto = False
    End If
    Select Case Mes
        Case 1                              'Janeiro
            UltimoDiaDoMes = 31
        Case 2                              'Fevereiro
            If bEbissexto = True Then
                UltimoDiaDoMes = 29
            Else
                UltimoDiaDoMes = 28
            End If
        Case 3                              'Março
            UltimoDiaDoMes = 31
        Case 4                              'Abril
            UltimoDiaDoMes = 30
        Case 5                              'Maio
            UltimoDiaDoMes = 31
        Case 6                              'Junho
            UltimoDiaDoMes = 30
        Case 7                              'Julho
            UltimoDiaDoMes = 31
        Case 8                              'Agôsto
            UltimoDiaDoMes = 31
        Case 9                              'Setembro
            UltimoDiaDoMes = 30
        Case 10                             'Outubro
            UltimoDiaDoMes = 31
        Case 11                             'Novembro
            UltimoDiaDoMes = 30
        Case 12                             'Dezembro
            UltimoDiaDoMes = 31
        Case Else
            UltimoDiaDoMes = -1
    End Select
End Function

sexta-feira, 9 de maio de 2014

Função em Excel para trocar vírgula por ponto

Function Virgula2Ponto(Dado As Variant, CasasDecimais As Integer) As String
    Dim sDado As String
    Dim dDado As Double

    Dim PosicaoVirgula As Integer
   
    dDado = Round(Dado, CasasDecimais)
    sDado = CStr(dDado)
    PosicaoVirgula = InStr(1, sDado, ",")
    sDado = Left(sDado, PosicaoVirgula + CasasDecimais)
    Virgula2Ponto = Replace(sDado, ",", ".")
End Function

quinta-feira, 6 de fevereiro de 2014

Função em Excel 2007 para transformar Horas em Decimal

A célula onde está o valor de horas tem que estar no formato hhh:mm:ss formatada com o texto

Código da função:

Function Hora2Decimal(Hora As String) As Double
    Dim sHoras As String
    Dim sMinuto As String
    Dim sSegundo As String
    Dim iHora As Integer
    Dim iMinuto As Integer
    Dim iSegundo As Integer
    sHoras = Left(Hora, Len(Hora) - 6)
    sMinuto = Mid(Hora, Len(Hora) - 4, 2)
    sSegundo = Right(Hora, 2)
    iHora = CInt(sHoras)
    iMinuto = CInt(sMinuto)
    iSegundo = CInt(sSegundo)
    Hora2Decimal = CLng(iHora) + (iSegundo / 3600) + (iMinuto / 60)
End Function

Este código deve ser colocado em um módulo.


Exemplo:



Chamada da função:


Colocar suas funções personalizadas permanentes no Excel 2007

Em um post anterior “Criar funções personalizadas no Microsoft Excel 2007”, expliquei como escrever uma função que transforma um número de segundo para o formato “hh:mm:ss", porém o arquivo com a função deveria ser incluído em cada nova planilha que fosse criada. Para tornar esta função disponível toda vez que o Excel 2007 é carregado, é só seguir os passos abaixo: 1) Salve o arquivo com suas procedures, (pode ter várias no mesmo arquivo), com o formato “Suplemento do Excel(*.xlam). Clique no ícone do Windows Conforme Figura abaixo:
 
Depois em Salvar Como:
 
 
Escolha o Tipo de Arquivo “Suplemento do Excel(*.xlam)” no ComboBox, escolha a pasta onde será gravado o arquivo e dê um nome a ele, depois é só clicar no botão salvar.
 
 
Pronto, você acabou de gerar um Suplemento para o Excel 2007. Agora feche o Excel e abra novamente(outra instãncia). Clique novamento no ícone do Windows Conforme Figura abaixo:
 
 
Depois em opções do Excel
Escolha Suplementos:
Clique em no botão Ir...
Clique no Botão Procurar
 
 
 
Localize o arquivo que foi salvo com a extensão “.xlam”, depois clique no botão Ok.
 
Pronto, agora toda vez que o Excel for aberto, suas funções estarão disponíveis.

segunda-feira, 3 de fevereiro de 2014

Criar funções personalizadas no Microsoft Excel 2007

Apesar da grande quantidade de funções disponíveis no Microsoft Excel, às vezes é necessária uma procedure que desempenhe um cálculo ou tome uma ação específica, e, às vezes é muito mais fácil escrever um código para estes casos que montar fórmulas muito grandes e de difícil manutenção.

O Microsoft Excel oferece a possibilidade de criarmos nossas próprias procedures através da linguagem de programação VBA (Visual Basic for Aplication), disponível em todas as suas versões.

Através desta linguagem, pode-se desenvolver programas extremamente complexos ou escrever funções simples que facilitam o trabalho e aumentam a produtividade do usuário.

Neste post vou mostrar como criar uma função para efetuar a transformação de segundos em horas:minutos:segundos.

Existem dois tipos de procedures que podem ser criadas com VBA, as Subrotinas e as Funções. A diferença básica entre elas é que as Funções retornam valores e as Subrotinas não. As Funções são iniciadas com a palavra chave Function e as Subrotinas são iniciadas com a palavra chave Sub e terminam com as palavras chaves End Function e End Sub, respectivamente.

Exemplos:
1) Função
Function Seg2HHmmss(Seg as string)
 ‘Comentário sobre a procedure Código . .
 Seg2HHmmss = Retorno da função
End Function

2) SubRotina
Sub ConectrBancoDeDados(BancoDeDados as String)
‘Comentário sobre a procedure Código . .
End Sub

Passos para criar uma função personalizada no Excel 2007
Abra o Microsoft Excel Se a aba Desenvolvedor não estiver visível:

Clique no ícone do Windows Conforme Figura abaixo:

 



Clique no botão Opções do Excel e habilite a Caixa de seleção “Mostrar guia Desenvolvedor na Faixa de Opções”
 









Isto fará com que a aba Desenvolvedor fique visível. Depois escolha Visual Basic nesta aba, o que fará com que abra o Editor de Códigos do Visual Basic.













Clique com o botão direito do Mouse no nome da pasta de trabalho, escolha Inserir, depois Módulo como na figura abaixo.














Será aberto o Módulo para que seja digitado o código:












o código conforme abaixo: Observe que o Nome da Função é SegParaHHMMSS












Código da Função:

Function SegParaHHMMSS(Valor As Long) As String
   ‘Transforma segundos em horas minutes e segundos ‘Declaração de variáveis
   Dim lHora As Long
   Dim lMinuto As Long
   Dim lSegundo As Long
   Dim lAuxiliar As Long
    lAuxiliar = Valor
   lHora = Int(lAuxiliar / 3600)
   lAuxiliar = lAuxiliar - (lHora * 3600)
   lMinuto = Int(lAuxiliar / 60)
   lSegundo = lAuxiliar - (lMinuto * 60)
   ‘Retorno da função
   SegParaHHMMSS = Format(lHora, "00") & ":" & Format(lMinuto, "00") & ":" & Format(lSegundo, "00")
End Function

Testar a função

Feche o editor de Códigos do Visual Basic e vá para a planilha do Excel. Na Célula A1, Coloque o valor em segundos para fazer a conversão: Exemplo 36458 Posicione o cursor na Célula A2 e digite o sinal de igual “=” para ativar a barra de fórmulas, depois digite SegParaHHMMSS(A1). Quando finalizar aperte Enter e verá o valor convertido na Célula A2, “10:07:38”.

Dica: Pode ser usado a Barra de Fórumlas para inserir a Função conforme figura abaixo:











Na Caixa Valor, clique na célula “A1”, depois Enter, que o valor será convertido.

terça-feira, 28 de janeiro de 2014

Script para mapear unidade de rede com autenticação

Set WshNetwork = WScript.CreateObject("WScript.Network") WshNetwork.MapNetworkDrive "Letra da unidade a ser mapeada:", "\\Servidor\PastaCompartilhada", True, "Usuário", "Senha" O código acima pode ser editado em qualquer editor de texto simples com o Notepad do Windows e deve ser salvo com a extensão "vbs"

terça-feira, 5 de janeiro de 2010

Script para backup

REM *************************************************************************

REM                                                          SCRIPT PARA BACKUP 
REM *************************************************************************

Set FSO = CreateObject("Scripting.FileSystemObject")
strdiasemana = Weekday(now)
Set WshShell = WScript.CreateObject("WScript.Shell")

REM ********** Cria o nome da pasta baseado na data **********
sPasta = "c:\" & day(now) & month(now) & year(now)

REM Criar pasta
Set NovaPasta = FSO.CreateFolder(sPasta)

REm Colocar a contrabarra no final do nome da pasta
sPasta = sPasta  & "\*"

if (strdiasemana = "1") then
    REM ********** Backup de Domingo**********
    REM ********** Copiar um arquivo **********
    FSO.CopyFile "Arquivo de Origem", sPasta
    REM ********** Copiar uma pasta **********
    FSO.CopyFolder "Pasta de Origem",sPasta.
elseif (strdiasemana = "2") then
    REM ********** Backup de Segunda Feira**********
    REM ********** Copiar um arquivo **********
    FSO.CopyFile "Arquivo de Origem", sPasta
    REM ********** Copiar uma pasta **********
    FSO.CopyFolder "Pasta de Origem",sPasta
elseif (strdiasemana = "3") then
    REM ********** Backup de Terça Feira**********
    REM ********** Copiar um arquivo **********
    FSO.CopyFile "Arquivo de Origem", sPasta
    REM ********** Copiar uma pasta **********
    FSO.CopyFolder "Pasta de Origem",sPasta
elseif (strdiasemana = "4") then
    REM ********** Backup de Quarta Feira**********
    REM ********** Copiar um arquivo **********
    FSO.CopyFile "Arquivo de Origem", sPasta
    REM ********** Copiar uma pasta **********
    FSO.CopyFolder "Pasta de Origem",sPasta
elseif (strdiasemana = "5") then
    REM ********** Backup de Quinta Feira**********
    REM ********** Copiar um arquivo **********
    FSO.CopyFile "Arquivo de Origem", sPasta
    REM ********** Copiar uma pasta **********
    FSO.CopyFolder "Pasta de Origem",sPasta
elseif (strdiasemana = "6") then
    REM ********** Backup de Sexta Feira**********
    REM ********** Copiar um arquivo **********
    FSO.CopyFile "Arquivo de Origem", sPasta
    REM ********** Copiar uma pasta **********
    FSO.CopyFolder "Pasta de Origem",sPasta
elseif (strdiasemana = "7") then
    REM ********** Backup de Sábado**********
    REM ********** Copiar um arquivo **********
    FSO.CopyFile "Arquivo de Origem", sPasta
    REM ********** Copiar uma pasta **********
    FSO.CopyFolder "Pasta de Origem",sPasta
end if
REM ********** Destroi os objetyos criados **********
Set WshShell = Nothing
set FSO = Nothing

Para operacionalizar este script, basta colocar os seus arquivos a serem copiados dentro de cada cláusula IF do código acima, e salvar o arquivo com a extensão ".vbs".
Para rodar este script todos os dias em um horário predefinido, pode-se usar o agendador de tarefas do Windows.
Os arquivos criados ficarão em uma pasta com o nome de acordo com a data corrente. Por exemplo, no dia 9 de janeiro de 2010, a pasta onde os arquivos serão armazenados será 912010.