getsocknameを使う方がいいんじゃない?
マシンにhostnameやIPアドレスが複数ある時は、
そのsocketでどのIPアドレス使われてるかは
gethostname+gethostbynameじゃわかんないでしょ?