Limit action in comment according to IP

That hook won’t do it. It is a filter. You can alter the IP data but unless you are willing to kill (die; or exit; or wp_die()) the whole script you aren’t going to be able to stop the comment posting. I tested by hooking return false; to the filter. Nothing.

You can kill comment submission by hooking return false; to pre_comment_approved though, and you do have the IP data in the second parameter.

add_filter('pre_comment_approved', 'limit_commentator', 1, 2);
function limit_commentator( $approved, $commentdata ) {
  var_dump($approved,$commentdata);
  die;
}

You can check the $wpdb->comments table for that IP (in the comment_author_IP column) and return false if you get a match. It should be easy, but I wouldn’t do it. Many residential internet connections share the same external IP. If you limit by IP you may be limiting comments to one per neighborhood. Plus, residential IPs change. This is not reliable.

Rate limiting (per day / per hour) based on IP is a much better idea only because the odds are in your favor, and the implementation would be pretty similar.