1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
// Copyright 2018 LEXUGE // This file is part of lib_blaster. // lib_blaster is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // lib_blaster is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // You should have received a copy of the GNU Affero General Public License // along with lib_blaster. If not, see <https://www.gnu.org/licenses/>. use super::builder::build_pkt; use super::collector::Collector; use pnet_packet::ip::IpNextHeaderProtocols::Tcp; use pnet_transport::transport_channel; use pnet_transport::TransportChannelType::Layer3; use std::io; use std::net::IpAddr; pub fn send_syn(collector: &Collector) -> Result<(), io::Error> { let (mut tx, _) = transport_channel(100, Layer3(Tcp))?; let mut packet = [0u8; 40]; let packet = build_pkt(collector, &mut packet)?; match tx.send_to(packet, IpAddr::V4(collector.dst_ip)) { Ok(_) => Ok(()), Err(e) => Err(e), } }