ipv6주소(string) 를 char[] 로 변환 할때

rockmgh의 이미지


struct in6_addr st_addr6;
char ipv6_addr[16];

inet_pton(AF_INET6, "fe90:0000::347d:1e85:b11b:4af4", (void *) &ipv6_addr);
memcpy((void *) &st_addr6, (void *) &ipv6_addr, sizeof (st_addr6));

for(int i=0; i printf("[%2d] %x %x\n", i, ipv6_addr[i], st_addr6.s6_addr[i]);
}

위에와 같이 string값을 char[] 로 변환 하고 있는데요.. 각배열에 있는 값을 16진수로 찍어 보니 결과 값이 아래처럼 나오네요

ipv6_addr에 있는 배열에 왜 fffffff 가 붙어서 나올까요???

[ 0] fffffffe fe
[ 1] ffffff90 90
[ 2] 0 0
[ 3] 0 0
[ 4] 0 0
[ 5] 0 0
[ 6] 0 0
[ 7] 0 0
[ 8] 34 34
[ 9] 7d 7d
[10] 1e 1e
[11] ffffff85 85
[12] ffffffb1 b1
[13] 1b 1b
[14] 4a 4a
[15] fffffff4 f4

rockmgh의 이미지

이런식으로 0xff 를 넣어주면 되네요
printf("[%2d] %x %x\n", i, ipv6_addr[i] & 0xff, st_addr6.s6_addr[i]);

참조 : http://stackoverflow.com/questions/8060170/printing-hexadecimal-characters-in-c

bushi의 이미지

unsigned char ipv6_addr[16];

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.