Tôi đã tự hỏi nếu có một cách đơn giản để lấy địa chỉ IP công cộng của máy tính bằng Ruby.Nhận địa chỉ IP công cộng (từ xa)
Trả lời
Akamai cung cấp một "IP của tôi là gì" trang mà bạn có thể lấy:
require 'open-uri'
remote_ip = open('http://whatismyip.akamai.com').read
Có một vài lựa chọn thay thế mà làm điều tương tự, mặc dù:
- http://whatismyip.akamai.com
- http://ipecho.net/plain
- http://icanhazip.com
- http://ident.me
- http://bot.whatismyipaddress.com
Bạn cũng có thể sử dụng ipv4
và ipv6
tên miền phụ với icanhazip.com
.
Nếu bạn không muốn phụ thuộc vào bên thứ ba, bạn có thể tự cuộn ứng dụng giá một dòng và triển khai miễn phí trên Heroku hoặc bất kỳ thứ gì. Nó có tính đến rằng X-Forwarded-For
có thể chứa danh sách địa chỉ IP proxy được phân cách bằng dấu phẩy và chỉ trả lại IP của ứng dụng khách.
# config.ru
run lambda { |env|
remote_ip = env['HTTP_X_FORWARDED_FOR'] || env['REMOTE_ADDR']
remote_ip = remote_ip.scan(/[\d.]+/).first
[200, {'Content-Type'=>'text/plain'}, [remote_ip]]
}
tôi sử dụng curl:
my_ip = `curl http://ipecho.net/plain`
này không sử dụng Ruby stdlib và đòi hỏi curl mặc dù.
Không cần cào!
Tôi sử dụng ipify, một api mở trả về địa chỉ IP công khai của bạn. Hữu ích nếu bạn muốn có một phản ứng json (không được hiển thị ở đây).
require 'net/http'
public_ip = Net::HTTP.get URI "https://api.ipify.org"
=> "12.3.45.678"
Hoặc với curl:
public_ip = `curl https://api.ipify.org`
=> "12.3.45.678"
Đừng vui mừng, đó không phải là địa chỉ ip công cộng của tôi :)
Tôi muốn sử dụng một dịch vụ như http://www.whatsmyip.website/ để programatically có được IP . Sử dụng một cái gì đó như Linux curl sẽ tự động chỉ trả lại IP, nhưng nếu bạn sử dụng một ứng dụng khác nhau/ngôn ngữ bạn có thể cần phải kiểm tra API của họ.
ip = `curl http://www.whatsmyip.website`
Tôi đang tìm cùng một vấn đề và tìm thấy giải pháp tuyệt vời dựa trên API.
Để có được địa chỉ IP công cộng chúng ta có thể có thể sử dụng đoạn mã sau:
require "net/http"
ip = Net::HTTP.get(URI("https://api.ipify.org"))
puts "My public IP Address is: " + ip
API Site Url: https://www.ipify.org/
Đó là quá muộn để asnwer về vấn đề này nhưng tôi nghĩ rằng nó có thể là halpful cho người khác .
- 1. Netty: nhận địa chỉ ip từ xa trong messageReceived
- 2. Lấy địa chỉ IP của đầu cuối socket từ xa
- 3. Python: Nhận địa chỉ IP cục bộ được sử dụng để gửi dữ liệu IP đến một địa chỉ IP từ xa cụ thể
- 4. Địa chỉ IP từ sk_buff
- 5. Cách nhận địa chỉ IP từ xa/khách hàng bằng dịch vụ web RESTful trong java?
- 6. IPv4 địa chỉ từ xa trong WCF
- 7. Nhận địa chỉ IP cục bộ
- 8. Nhận tên máy chủ từ địa chỉ IP
- 9. Nhận địa chỉ IP của người dùng
- 10. Cách lấy địa chỉ IP của điểm cuối từ xa WCF?
- 11. Địa chỉ IP từ xa với nút-js phía sau amazon ELB
- 12. Xác định địa chỉ IP của máy khách từ xa cho cuộc gọi Java RMI
- 13. Mysql - kết nối với máy chủ từ xa bằng địa chỉ IP
- 14. Tăng địa chỉ IP
- 15. IP công cộng của EC2 hoạt động như thế nào?
- 16. Nhận địa chỉ IP của máy chủ trong ASP.NET?
- 17. Gỡ lỗi từ xa các ứng dụng ASP.NET trên máy chủ có địa chỉ IP tĩnh
- 18. Không nhận địa chỉ từ xa trong khi sử dụng proxy trong socket.io
- 19. Đảo ngược ip, tìm tên miền trên địa chỉ IP
- 20. Nhận địa chỉ IP của giao diện trên Linux
- 21. Làm cách nào để nhận địa chỉ ip công khai của tôi trong tập lệnh shell?
- 22. Nhận địa chỉ IP yêu cầu với Pyramid
- 23. Nhận địa chỉ IP của khách hàng ở Sinatra?
- 24. trim địa chỉ ip octet
- 25. Kết nối với SQL Azure từ Azure VM - IP nội bộ hoặc số VIP công cộng
- 26. Làm cách nào để nhận địa chỉ IP?
- 27. Scala Chơi Khung nhận của người dùng địa chỉ ip
- 28. Nhận địa chỉ ip wifi của tôi Android
- 29. Nhận địa chỉ IP bằng chuỗi URL? (Java)
- 30. Nhận địa chỉ IP bằng cách sử dụng Action Script?
Tìm nạp [whatismyip] (http://www.whatismyip.com/) và phân tích cú pháp. :) –
bạn có thông tin gì trong tay? tên miền?Nếu người dùng đang kết nối trực tiếp với máy chủ của bạn .. thì ip của khách hàng là ip công khai – ShadyKiller
Mã sẽ chạy ở đâu trên máy tính của người dùng cuối? họ đang nói chuyện với một máy chủ bên ngoài rồi (yêu cầu web của IE) – Doon