NET :: libdnet.

ligação para o libdnet desenterrado da música
Baixe Agora

NET :: libdnet. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Patrice Auffret
  • Site do editor:
  • http://search.cpan.org/~gomor/

NET :: libdnet. Tag


NET :: libdnet. Descrição

Encadernação para Dug Song's libdnet Net :: libdnet é um módulo Perl que fornece uma interface portátil simplificada para várias rotinas de rede de baixo nível, incluindo manipulação de endereços de rede, kernel arp cache e pesquisa de tabela de rota e manipulação, firewalling de rede, pesquisa de interface de rede e manipulação, interceptação de tráfego de rede via interfaces de túnel e pacote de quadros IP e transmissão de quadro Ethernet. Destina-se a complementar a funcionalidade fornecida pela LIBPCAP. Todas as funções originais e obsoletas retornam undef e imprimir uma mensagem de aviso para o erro padrão quando ocorrer um problema. As funções obsoletas são: addr_cmp, addr_bast, addr_net, arp_add, arp_delete, intf_get_src, insf_get_dst, rote_get_delete, rota_get.Essas funções de OsbSolete continuarão a funcionar, para manter a compatibilidade revertida, mas não deve mais ser usada. As novas APIs devem ser preferidas. Há duas novas APIs, uma é a baixa de nível, combinando funções libdnet, e a outra é uma API de alto nível, combinando uma programação mais orientada a objeto Perl. Este último é altamente preferido.net ::LibDnet módulo implementa a API de baixo nível. A API de alto nível é acessível usando os seguintes módulos: net :: libdnet :: intf, net :: libdnet :: rota, net :: libdnet :: fw, net :: libdnet :: arp, net :: libdnet :: : Eth, net :: libdnet :: ip e net :: libdnet :: tun.synopsis # # Isso só importará todas as funções e constantes # usar líquido :: libdnet; # # Manipulação de interface de rede # # !!! Conselhos: você deve usar net :: libdnet :: intf em vez disso # usar net :: libdnet qw (: intf); Meu $ INTF = DNET_INTF_OPEN (); Meu $ ETH = DNET_INTF_GET ($ INTF, {INTF_NAME => 'eth0'}); Imprimir "IP:" $ Eth -> {intf_addr}. "\ n"; Imprimir "Mac:". $ Eth -> {intf_link_addr}. "\ n"; Meu $ DST = DNET_INTF_GET_DST ($ INTF, '192.168.0.10'); Imprimir "Nome:". $ DST -> {intf_name}. "\ n"; Imprimir "IP:". $ DST -> {intf_addr}. "\ n"; Imprimir "Mac:". $ DST -> {intf_link_addr}. "\ n"; Meu $ SRC = DNET_INTF_GET_SRC ($ INTF, '192.168.0.1'); Imprimir "Nome:". $ src -> {intf_name}. "\ n"; Imprimir "IP:". $ src -> {intf_addr}. "\ n"; Imprimir "Mac:". $ src -> {intf_link_addr}. "\ n"; dnet_intf_close ($ INTF); # # Manipulação de cache arp # # !!! Conselhos: você deve usar net :: libdnet :: arp em vez disso # usar net :: libdnet qw (: arp); meu $ arp = dnet_arp_open (); Minha $ Entrada = DNET_ARP_GET ($ ARP, {ARP_PA => '10 .0.0.1 '}); Imprimir "Mac:". $ Entrada -> {arp_ha}. "\ n"; dnet_arp_add ($ arp, {arp_ha => '00: 11: 22: 33: 44: 55 ', arp_pa => '10 .0.0.10'}); dnet_arp_delete ($ ARP, {arp_ha => '00: 11: 22: 33: 44: 55 ', arp_pa => '10 .0.0.10'}); dnet_arp_close ($ ARP); # # Manipulação de mesa de rota # # !!! Conselhos: você deve usar net :: libdnet :: rota em vez disso # use net :: libdnet qw (: rota); minha rota $ = dnet_route_open (); dnet_route_add ($ rota, {ROUTE_GW => '10 .0.0.1 ', Route_dst =>' 192.168.0.1 '}); dnet_route_delete ($ ROUDE, {ROUTA_GW => '10 .0.0.1 ', Route_dst =>' 192.168.0.1 '}); my $ get = dnet_route_get ($ ROAD, {ROUTA_DST => '192.168.0.10'}); Imprimir "GW:". $ get -> {Route_GW}. "\ n"; dnet_route_close ($ rota); # # Firewall regras manipulação # # !!! Conselhos: você deve usar net :: libdnet :: fw em vez disso # use net :: libdnet qw (: fw: consts); meu $ fw = dnet_fw_open (); # Isso é bastante complexo. Esta regra bloqueia o TCP como entrada para 10.0.0.1 # Você deve realmente usar net :: libdnet :: FW em vez disso. dnet_fw_add ($ fw, {fw_op => fw_dir_in, fw_proto => 6, fw_dst => '10 .0.0.1 '}); dnet_fw_delete ($ fw, {fw_op => fw_dir_in, fw_proto => 6, fw_dst => '10 .0.0.1 '}); dnet_fw_close ($ FW); # # Envie no nível IP # # !!! Conselhos: você deve usar net :: libdnet :: ip em vez disso # usar net :: libdnet qw (: ip); meu $ ip = dnet_ip_open (); meu $ RAW = "\ x47 \ x47 \ x47 \ x47"; DNET_IP_SEND ($ IP, $ RAW, Comprimento ($ RAW)); dnet_ip_close ($ IP); # # Enviar no nível Ethernet # # !!! Conselhos: você deve usar net :: libdnet :: ETH em vez # usar net :: libdnet qw (: eth); Minha $ Eth = DNET_ETH_OPEN ('ETH0'); dnet_eth_send ($ ETH, $ RAW, comprimento ($ RAW)); dnet_eth_close ($ Eth); # # Interceptação de tráfego # # !!! Conselhos: você deve usar net :: libdnet :: tun em vez disso # usar net :: libdnet qw (: tun); Meu $ TUN = DNET_TUN_OPEN ('10 .0.0.10 ',' 192.168.0.10 ', 1500); meu $ BUF = DNET_TUN_RECV ($ TUN, 1500); # Fazer coisas com $ BUF DNET_TUN_SEND ($ TUN, $ BUF, comprimento ($ BUF)); dnet_tun_close ($ TUN); # # Hash refs no formato dnet # Meu $ INTF = {intf_alias_num => 1, intf_mtu => 1500, intf_lten => 112, intf_type => 6, intf_name => 'etf0', intf_dst_addr => undef, intf_link_addr => '00 : 11: 22: 33: 44: 55 ', intf_flags => 49, intf_addr => '10 .100.0.10 / 24', intf_alias_addrs => }; meu $ ARP = {arp_pa => '10 .100.0.1 ', arp_ha => '11: 22: 33: 44: 55: 66'}; Minha $ Route = {Route_GW => '10 .100.0.1 ', Route_dst =>' 0.0.0.0/0 '}; meu $ fw = {fw_dir => 2, fw_sport => , fw_dport => , fw_src => '0.0.0.0/0', fw_dst => '0.0.0.0/0', fw_proto => 6, fw_device => 'eth0', fw_op => 2}; Requisitos: · Perl.


NET :: libdnet. Software Relacionado

Scgi.

Para implementar uma interface SCGI para um servidor de aplicativos ...

162

Download