Q:

Can I broadcast packet to a public ip?

I have seen that x.x.x.255 is reserved for broadcasting. Is it only work for broadcasting to the computer which connected to the same router? Can I broadcast to public IPs?

A:

Basically, there is not difference between local IP and public IP. By convention, the last available IP of a network always is the broadcast address. However we can imagine the ISP responsible of the network would reject any packet sent to the broadcast address, or at least limit it in order to avoid spamming.
Just test it :
foo@Bar:~$ host security.stackexchange.com
security.stackexchange.com has address 198.252.206.16
foo@Bar:~$ whois 198.252.206.16
# ...
# Some stuff
# ...
NetRange:       198.252.206.0 - 198.252.206.255
CIDR:           198.252.206.0/24
# ...
# Still some stuff
# ...
foo@Bar:~$ ping 198.252.206.255 -c5
PING 198.252.206.255 (198.252.206.255) 56(84) bytes of data.

--- 198.252.206.255 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4003ms

Here we can see that the ping was dropped. Otherwise it would have return IP addresses of some machines upon the network 198.252.206.0/24.

