Calculate broadcast address from ip and subnet mask

Kolja picture Kolja · Apr 22, 2009 · Viewed 55.3k times · Source

I want to calculate the broadcast address for:

IP:     192.168.3.1
Subnet: 255.255.255.0
=       192.168.3.255

in C.

I know the way (doing fancy bitwise OR's between the inversed IP and subnet), but my problem is I come from the green fields of MacOSX Cocoa programing.

I looked into the source of ipcal, but wasn't able to integrate it into my code base. There must be a simple ten lines of code somewhere on the internet, I just can't find it. Could someone point me to a short code example of how to do it in C?

Answer

froh42 picture froh42 · Apr 22, 2009

Just calculate:

broadcast = ip | ( ~ subnet )

(Broadcast = ip-addr or the inverted subnet-mask)

The broadcast address has a 1 bit where the subnet mask has a 0 bit.