@@ -49,12 +49,18 @@ def self.get_client_ip_from_request(request, options)
4949
5050 begin
5151 x_forwarded_for = request . env [ 'HTTP_X_FORWARDED_FOR' ]
52+ if ip . include? ','
53+ x_forwarded_for = ip . split ( ',' ) [ 0 ]
54+ end
5255 if self . validate_ip ( x_forwarded_for )
5356 return x_forwarded_for
5457 end
5558 rescue NoMethodError
5659 begin
5760 x_forwarded_for = request [ 'HTTP_X_FORWARDED_FOR' ]
61+ if ip . include? ','
62+ x_forwarded_for = ip . split ( ',' ) [ 0 ]
63+ end
5864 if self . validate_ip ( x_forwarded_for )
5965 return x_forwarded_for
6066 end
@@ -65,12 +71,18 @@ def self.get_client_ip_from_request(request, options)
6571
6672 begin
6773 x_forwarded_for = request . env [ 'HTTP_X_REAL_IP' ]
74+ if ip . include? ','
75+ x_forwarded_for = ip . split ( ',' ) [ 0 ]
76+ end
6877 if self . validate_ip ( x_forwarded_for )
6978 return x_forwarded_for
7079 end
7180 rescue NoMethodError
7281 begin
7382 x_forwarded_for = request [ 'HTTP_X_REAL_IP' ]
83+ if ip . include? ','
84+ x_forwarded_for = ip . split ( ',' ) [ 0 ]
85+ end
7486 if self . validate_ip ( x_forwarded_for )
7587 return x_forwarded_for
7688 end
@@ -81,12 +93,18 @@ def self.get_client_ip_from_request(request, options)
8193
8294 begin
8395 x_forwarded_for = request . env [ 'REMOTE_ADDR' ]
96+ if ip . include? ','
97+ x_forwarded_for = ip . split ( ',' ) [ 0 ]
98+ end
8499 if self . validate_ip ( x_forwarded_for )
85100 return x_forwarded_for
86101 end
87102 rescue NoMethodError
88103 begin
89104 x_forwarded_for = request [ 'REMOTE_ADDR' ]
105+ if ip . include? ','
106+ x_forwarded_for = ip . split ( ',' ) [ 0 ]
107+ end
90108 if self . validate_ip ( x_forwarded_for )
91109 return x_forwarded_for
92110 end
@@ -119,6 +137,9 @@ def self.parse_ip(headers)
119137
120138 def self . parse_proxy_header ( headers , header_key )
121139 h = headers . gsub ( header_key + ': ' , '' )
140+ if headers . include? ','
141+ h = h . split ( ',' ) [ 0 ]
142+ end
122143 return h
123144 end
124145
0 commit comments