Advertisement
Guest User

Untitled

a guest
May 29th, 2024
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.85 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "github.com/labstack/gommon/log"
  5.     "syscall"
  6. )
  7.  
  8. func main() {
  9.     socketFd, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_RAW, 255)
  10.     if err != nil {
  11.         log.Fatalf("socket: %v", err)
  12.     }
  13.     defer syscall.Close(socketFd)
  14.  
  15.     log.Printf("socket created")
  16.  
  17.     if err = syscall.Bind(socketFd, &syscall.SockaddrInet4{
  18.         Port: 8411,
  19.         Addr: [4]byte{0, 0, 0, 0},
  20.     }); err != nil {
  21.         log.Fatalf("bind: %v", err)
  22.     }
  23.     log.Printf("socket bound")
  24.  
  25.     buf := make([]byte, 4096)
  26.  
  27.     for {
  28.         // Вот тут лок и нихуя не происходит, при этом нмап видит сервер
  29.         // Хули не работает
  30.         n, sockaddr, err := syscall.Recvfrom(socketFd, buf, 0)
  31.         if err != nil {
  32.             log.Fatalf("recvfrom: %v", err)
  33.         }
  34.  
  35.         log.Printf("received %d bytes from %v: %x", n, sockaddr, buf[:n])
  36.     }
  37. }
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement