Hem windows hem de linux üzerinde çalışmam gereken C++ kodu yazıyorum ve uygulamanın çalıştığı kutunun ip adresini döndürecek bir işlev çağrısı arıyorum. Böyle bir var mı? Eğer boost kullanabilirsiniz EĞERIp adresini uzak bir makineden nasıl edinirsiniz?
cevap
Çağrı soketine() bakmak sonra getsockname().
çapraz platform çözümü mi? –
soketi() kesinlikle BSD soketlerinin bir parçasıdır ve bu yüzden çapraz platformdur - kendimi Özgür BSD'de kullandım. Google, getsockname() 'ın Linux'ta var olduğunu ve insanlarda da yer aldığını, dolayısıyla çapraz platformun da olacağını söylüyor. Bu yaklaşımı sadece genel olarak Win32'de kullandım. – sharptooth
Bunu yapabilirsiniz, ancak genellikle kötü bir fikirdir. "Adam netdevice" bölümünde açıklandığı gibi
ioctl SIOCGIFCONF bu açıklıyor.
bunun kötü bir fikir olmasının nedeni muhtemelen bunun dışında istediğini elde olmayacak olmasıdır.
makine hangisi (ler) vardır kamu bilmez, birkaç ya da birçok IP adresine sahip olabilir. Bir NAT geçidinin (veya birkaçının) arkasında olabilir; bu durumda hiçbiri 'un hiçbiri açık olmayabilir. Sadece özellikle faydalı bir o bilgi kullanamazsınız
. Ne için istersen, muhtemelen bunu yapmak için iyi bir fikir değil.İyi fikir webservice kullanmaktır. Bilinen bir sunucuya bağlanın, iletişim kurmak için kullandığınız IP'yi geri göndermesini sağlayın. Bu, PC'nizin dış dünyayla konuşurken kullandığı IP adresini (OK, ve IP adresi) size söyleyecektir.
Olası istisnalar ve neden önemli değil:
- Bir NAT aygıtının adresini almak - evet, bu durumda PC size ilgisi planladıklarını ne bir Internet adresi yok Muhtemelen sahip 10.xyz adresi? İnternete bağlı değiliz olarak
- Sen, hiç bir adres alamadım - Bağlanmak olamazsa, başka bilgisayar IP adresi ile herhangi bir şey kullanışlı yapabilirdi düşüktür.
- IP'ye geri dönüyorsunuz, ancak hiç kimse ona bağlanamaz - muhtemelen gelen bağlantıyı reddeden filtreli bir güvenlik duvarının arkasındasınız demektir. Güvenlik duvarının aynı bilgisayara bağlanan başka bir IP adresindeki trafiği kabul etmesi pek olası değildir. Bu durumda bile, keşfedilmesi imkansız olabilir. Ve FTP için cehennem olurdu.
Uygulamanızın makinenin adını biliyorsanız, yalnızca gethostbyname() kullanın.
- 1. Java kullanarak ethernet adresini nasıl edinirsiniz?
- 2. Kullanıcının IP Adresini Alın
- 3. Java RMI çağrısı için uzak istemci IP adresini belirleme
- 4. Yerel makineden uzak makineye bir dizin kopyalama
- 5. Uzak Masaüstü İstemcisinin IP Adresi Nasıl Alınır?
- 6. Neden uzak bir makineden erişilirse request.getRemoteAddr(). Equals ("127.0.0.1")
- 7. Uzak Yuva Son Noktası IP Adresinin Alınması
- 8. Sunucumun IP adresini PHP (CLI)
- 9. Powershell IP adresini Integer'e dönüştürün
- 10. IP adresini rubire olarak değiştir
- 11. İstemci IP Adresini nasıl alabilirim? HttpServletRequest
- 12. IP adresini komut satırından nasıl kopyalayıp ayrıştırabilirim?
- 13. phpmyadmin'den mySQL sunucusu ip adresini nasıl bulurum?
- 14. Apche Camel kullanarak uzak makineden (diğer makinelerden) dosyalar nasıl kopyalanır?
- 15. Bir IP adresini Objective-C'de düzenli ifadeyle nasıl doğrularsınız?
- 16. İstemcinin ve Sunucunun IP adresini bulma
- 17. Bir istemcinin IP Adresini Alma Bir web hizmeti için
- 18. Pencerelerde ip adresini değiştirmek için komut dosyası
- 19. IP adresini ana bilgisayar adına dönüştürme
- 20. Sistemin Ip ve mac adresini edinin
- 21. java uygulamasından doğru yerel IP adresini alın
- 22. PHP'de başka bir sayfayı nasıl proxy edinirsiniz
- 23. Scala Play Framework Kullanıcının IP adresini alıyorum
- 24. API kullanarak bir kapsayıcıdan Swarm düğümü IP adresini al?
- 25. TCPClient/Socket ile kullanmak için Giden IP adresini belirtin C#
- 26. Site talebi kullanmadan gerçek IP adresini nasıl alabilirim? C#
- 27. iOS'ta bağlanmak için kullanılan tam IP adresini nasıl edinebilirim?
- 28. SunucuSocket + client Soket - istemcinin IP adresini nasıl alabilirim?
- 29. Dizgi olarak temsil edilen IP adresini nasıl artırırım?
- 30. Gönderen IP adresini curl kullanarak nasıl taklit edebilirim?
Bu ne anlama geliyor "uzak"? – unwind
Uygulamanın, üzerinde çalıştığı kutunun ipini keşfetmesini mi istiyorsunuz? Birden çok ips içeren bir kutudan ne haber? İnternette konuşan bazı ips'lere ve yerel olanlara ne dersiniz? –