Pessoal, preciso monitorar todos pacotes que saem do computador onde o programa está instalado para um determindado IP que o usuário vai escolher. No caso quero coletar informações do que os usuários estão enviando para as impressoras.
Alguém me mostra o caminho das pedras, na API, olhei a java.net, mas não me veio ideia de como fazer isso. Um exemplo pode ajudar.
Se sim, basta usar a própria API de sockets do Java. Abra um serversocket para receber a conexão da máquina, e faça forward dos dados recebidos para outra máquina. Aí gere quaisquer logs que quiser antes do forward.
Se você nem sequer precisa saber as informações dos pacotes, talvez um servidor proxy possa gerar esse tipo de monitoramento e fazer logs de acesso para você.
Esse tipo de coisas (contabilizar impressões dos clientes) não se costuma fazer assim, até porque o cliente pode desligar o seu programa (ha ha ha). O método correto é ver, no seu servidor de impressão, qual é o suporte que ele dá para contabilizar as tais impressões e emitir relatórios.
Como assim, você se conecta diretamente à impressora, sem usar uma fila de impressão em algum servidor? Muito estranho.
Mesmo uma impressora local tem uma fila de impressão, e normalmente aquelas impressoras que podem ficar em rede são associadas a servidores que controlam suas filas de impressão.
Quando você faz isso, a fila da impressão está na própria máquina do usuário (fila local), portanto você precisa de um programa VBScript que possa examinar essa fila local e fazer a contabilização. Procure seu Microsoft Certifier Solution Engineer de confiança, ou dê uma perguntadinha em algum fórum da Microsoft.
mas estou tentando fazer isso a um bom tempo e nada.
Eu tenho um script qual coloca, estação por estação onde há uma standart TCP\IP port configurada, tudo que é impresso em um txt, csv ou como você preferirir.
Tem uns caras da ND-Digital que acessam os arquivos do spool com .net, deletam, renomeiam e pausam, mas eles não abrem nada, é o segredo do negócio.