title: Use raw sockets in Go
body: <p>I'm trying to write a program that receives DHCP discoveries (UDP) and forwards them on to a given IP address using a different source IP address depending on the content of a specific field (GIADDR) in the DHCP packet.
  I could get working the receiving and sending bit but I'm having an issue with using as IP source address anything that is not a configured IP address on the local machine.
  I believe that this can only be done using Raw sockets; is that true ?
  Are there any examples out there on how to do that in Go ?
  I've spent a couple of days looking around but could not find much.</p>
  
  <p>Cheers,
  Sal</p>