Heroku というか Amazon EBS の問題のようですが、
get '/' do "IP: #{ request.ip }" end
のような簡単なアプリを Heroku にアップして実行すると IP: 10.x.x.x のような結果が返ってきてしまいます。
環境変数 HTTP_X_REAL_IP を参照すれば、正しい IP アドレスの取得が可能です。
get '/' do ip = env['HTTP_X_REAL_IP'] || request.ip "IP: #{ ip }" end
ただし SSL が有効な場合、駄目かもしれません。
参考: Getting the client IP address through heroku/rack?