Как изменить исходный IP-адрес исходного пакета на поддельный IP-адрес в Голанге? - PullRequest
0 голосов
/ 25 апреля 2018

Мне нужно получить пакет udp и отправить их на широковещательный адрес другого интерфейса.

Я написал сервер пересылки udp.Это работает!Как изменить исходный адрес udp-адреса новых пакетов на src-адрес дохода пакета?

package main

import (
    "fmt"
    "net"
    "os"
)

func CheckError(err error) {
    if err  != nil {
        fmt.Println("Error: " , err)
        os.Exit(0)
    }
}

func main() {
    ServerAddr,err := net.ResolveUDPAddr("udp4",":10001")
    CheckError(err)

    LocalAddr, err := net.ResolveUDPAddr("udp4", "192.168.164.83:10001")
    CheckError(err)

    RemoteAddr, err := net.ResolveUDPAddr("udp4", "192.168.164.255:10002")
    CheckError(err)

    Conn, err := net.DialUDP("udp4", LocalAddr, RemoteAddr)
    CheckError(err)

    defer Conn.Close()

    ServerConn, err := net.ListenUDP("udp4", ServerAddr)
    CheckError(err)
    defer ServerConn.Close()

    buf := make([]byte, 2048)

    for {
        n,addr,err := ServerConn.ReadFromUDP(buf)
        fmt.Println("Received ",n , "bytes from ",addr)

        if err != nil {
            fmt.Println("Error-recive: ",err)
        } else {
            go Conn.Write(buf[0:n])
        }
    }
}
...