我將如何將IP地址轉換爲C++字節?基本上我該如何解析IP地址?例如,如果我有一個字符串等於121.122.123.124
。 我需要解析這樣的byte1 = 121
,byte2 = 122
,byte3 = 123
,byte4 = 124
。C++如何將IP地址轉換爲字節?
回答
如果圖案是恆定的,數點數點等,然後使用istringstream:
#include <sstream>
using namespace std;
int byte1, byte2, byte3, byte4;
char dot;
char *ipaddress = "121.122.123.124";
istringstream s(ipaddress); // input stream that now contains the ip address string
s >> byte1 >> dot >> byte2 >> dot >> byte3 >> dot >> byte4 >> dot;
謝謝,我不需要設置點是什麼,例如dot ='。'?如果IP地址類似於12.34.56.123,這仍然可以工作嗎? – user1128637 2012-04-28 19:41:03
>>運算符是開發的,它知道如何根據您提供的變量的類型提取數據。由於您提供了一個char(名爲dot),因此將該點提取爲char。點被用作點隊長。 byte#是一個int,所以不論有多少數字,>>都會將它作爲一個int來提取,所以,是的,它會正確解析。 – 2012-04-28 21:03:58
此解決方案不接受有效輸入字符串「127.1」,並且不會拒絕無效輸入字符串「300.1.1.1」。 – 2012-04-28 21:12:08
試試這個:
char ipstr[] = "121.122.123.124";
char *marker, *ret;
unsigned char b1, b2, b3, b4;
ret = strtok_r(ipstr, ".", &marker);
b1 = (unsigned char)strtod(ret, NULL);
ret = strtok_r(NULL, ".", &marker);
b2 = (unsigned char)strtod(ret, NULL);
ret = strtok_r(NULL, ".", &marker);
b3 = (unsigned char)strtod(ret, NULL);
ret = strtok_r(NULL, ".", &marker);
b4 = (unsigned char)strtod(ret, NULL);
使用sscanf()
功能:
#include <cstdio>
char arr[] = "192.168.1.102";
unsigned short a, b, c, d;
sscanf(arr, "%hu.%hu.%hu.%hu", &a, &b, &c, &d);
你爲什麼手動NUL終止你的字符串?編譯器會爲你做這件事,你知道。 – 2012-04-28 19:35:18
是的,你說得對。我已經從字符串文字中刪除了'\ 0'。謝謝 – 2012-04-28 19:37:38
使用inet_aton
。
#include <arpa/inet.h>
#include <string>
#include <iostream>
int
main(int argc, char *argv[])
{
std::string s;
in_addr addr;
while(std::cin >> s && inet_aton(s.c_str(), &addr)) {
std::cout << inet_ntoa(addr) << "\n";
}
}
- 1. 如何將IP地址轉換爲DWORD?
- 2. 轉換IP地址字節在Python
- 3. 將字節數組轉換爲IP地址
- 4. 將IP或MAC地址從字符串轉換爲字節數組(Arduino或C)
- 5. 如何將IP地址轉換爲與VB.NET或C#的URL#
- 6. 如何將整數數組轉換爲C++中的IP地址?
- 7. Java:如何將MySQL DECIMAL(39,0)IP地址轉換爲字符串
- 8. 如何將IP地址轉換爲二進制(16)字符串?
- 9. 如何將字符串轉換爲IP地址,反之亦然
- 10. 如何正確地將C++ ulong 4字節的IP地址轉換爲C#類型?
- 11. 如何將字符串Mac地址轉換爲字節數組
- 12. 將號碼轉換爲IP地址(v4)
- 13. 將int轉換爲IP地址
- 14. 轉換IP地址的字節C#數組
- 15. 在Python中將IP地址字符串正好轉換爲4個字節
- 16. 將鄰居MAC地址轉換爲IP地址ns-3
- 17. 如何將默認網關的私有IP地址轉換爲C#中的公共IP地址
- 18. 如何將字節[]轉換爲字節[]
- 19. 如何將IP地址轉換爲國家?
- 20. 如何將靜態IP地址轉換爲新域名
- 21. 如何手動將整數轉換爲Ruby中的IP地址
- 22. 如何在Android Java中將MAC地址轉換爲IP?
- 23. 如何將192,168,1,2,7,138轉換爲IP地址192.168.1.2的端口1930
- 24. UNIX:如何將IP地址轉換爲二進制代碼
- 25. 如何將IP地址轉換爲BigQuery中的整數?
- 26. Ruby:如何將ipv6的uo地址轉換爲ipv4的ip地址?
- 27. 將字符串轉換爲IP地址時輸出錯誤
- 28. 將字符串轉換爲IP地址(android)
- 29. Python將Base64編碼的IP地址轉換爲十進制IP地址
- 30. MAC地址到IP轉換
'getline'以'.'作爲分隔符值得研究。 – chris 2012-04-28 19:07:05
我曾嘗試讀取一個字符,但我無法弄清楚如何讓它從字節1切換到字節2等等。被找到。 – user1128637 2012-04-28 19:43:03