GVKun编程网logo

ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”

14

此处将为大家介绍关于ipaddress.IPv6Address在Python中返回错误“AddressValueError:最多允许8个冒号”的详细内容,此外,我们还将为您介绍关于accessviol

此处将为大家介绍关于ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”的详细内容,此外,我们还将为您介绍关于access violation at address in module Read of address、c – SymFromAddr返回ERROR_INVALID_ADDRESS标志,如何在mingw中获取堆栈跟踪?、c – 从GetAdaptersAddresses()获取IP_ADDRESS_STRING?、c# – IPAddress.Any和IPAddress.IPv6Any字段有什么区别?的有用信息。

本文目录一览:

ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”

ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”

如何解决ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”?

我在数据帧中的变量上使用 ipaddress.IPv6Address 以获得整数输出。但每次,我都会收到以下错误:“AddressValueError:最多允许 8 个冒号”。我的变量的每个 ip 地址都有 8 个或更少的冒号,所以看起来 ipaddress.IPv6Address 无法区分变量的单独行。有没有办法解决这个问题?

我可以使用单个 IP 地址,但不能使用多个。示例: int(ipaddress.IPv6Address(''2001:db8::ffff:ffff'')) 工作正常并返回一个整数。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

access violation at address in module Read of address

access violation at address in module Read of address

总结

以上是小编为你收集整理的access violation at address in module Read of address全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

c – SymFromAddr返回ERROR_INVALID_ADDRESS标志,如何在mingw中获取堆栈跟踪?

c – SymFromAddr返回ERROR_INVALID_ADDRESS标志,如何在mingw中获取堆栈跟踪?

我尝试做的就是打印一组调用给定行的方法.我从 https://stackoverflow.com/a/5699483/393087回答了代码.稍微重构它以显示问题所在.

#include <windows.h>
#include <iostream>
#include <imagehlp.h>
#include <dbghelp.h>

void printStack( void ) {
  HMODULE dbghelp_lib = LoadLibrary("dbghelp.dll");
  if (NULL == dbghelp_lib) {
    printf("dbghelp.dll Failed");
  }
  HANDLE process = GetCurrentProcess();
  if (!SymInitialize( process,NULL,TRUE )) {
    printf("SymInitialize Failed: %d\n",GetLastError());
    abort();
  } else SetLastError(0);
  void * stack[100];
  ULONG FramesToSkip = 0;
  ULONG FramesToCapture = 32;
  unsigned short frames = CaptureStackBackTrace( FramesToSkip,FramesToCapture,stack,NULL );
  SYMBOL_INFO * symbol;
  symbol = ( SYMBOL_INFO * )calloc( sizeof( SYMBOL_INFO ) + 256 * sizeof( char ),1 );
  symbol->MaxNameLen = 255;
  symbol->SizeOfStruct = sizeof( SYMBOL_INFO );
  for(unsigned int i = 0; i < frames; i++ ) {
    if(!SymFromAddr( process,( DWORD )( stack[ i ] ),symbol )) {
      printf("SymFromAddr Failed: %d\n",GetLastError());
    }
    printf( "%i: %s - 0x%0X\n",frames - i - 1,symbol->Name,symbol->Address );
  }
  free( symbol );
}

void testfunc() {
  printStack();
}

int main() {
  testfunc();
}

它返回:

SymFromAddr Failed: 487
3:  - 0x0
SymFromAddr Failed: 487
2:  - 0x0
SymFromAddr Failed: 487
1:  - 0x0
0: RegisterWaitForInputIdle - 0x7C81702E

它编译和链接没有任何警告.

编译器:http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/32-bit/threads-posix/sjlj/x32-4.7.2-release-posix-sjlj-rev7.7z

解决方法

dbghelp只读取PDB文件.因此,您的选择是:

>重新实现dbghelp API以使用DWARF(可能比您想要的更多工作)
>将DWARF符号转换为PDB.

对于#2的一些谷歌搜索找到了cv2pdb,它似乎面向D编程语言,但它看起来很通用,可能是一种更简单的方法.

c – 从GetAdaptersAddresses()获取IP_ADDRESS_STRING?

c – 从GetAdaptersAddresses()获取IP_ADDRESS_STRING?

GetAdaptersAddresses()将以IP_ADAPTER_UNICAST_ADDRESS格式获取地址,其格式定义为:
typedef struct _IP_ADAPTER_UNICAST_ADDRESS {  union {    struct {      ULONG Length;      DWORD Flags;    } ;  } ;  struct _IP_ADAPTER_UNICAST_ADDRESS *Next;  SOCKET_ADDRESS                     Address;  IP_PREFIX_ORIGIN                   PrefixOrigin;  IP_SUFFIX_ORIGIN                   SuffixOrigin;  IP_DAD_STATE                       DadState;  ULONG                              ValidLifetime;  ULONG                              PreferredLifetime;  ULONG                              LeaseLifetime;  UINT8                              OnLinkPrefixLength;} IP_ADAPTER_UNICAST_ADDRESS,*PIP_ADAPTER_UNICAST_ADDRESS;

似乎建议人类可读的IP地址字符串的唯一字段是Address,它是一个SOCKET_ADDRESS结构,定义如下:

typedef struct _SOCKET_ADDRESS {  LPSOCKADDR lpSockaddr;  INT        iSockaddrLength;} SOCKET_ADDRESS,*PSOCKET_ADDRESS;

反过来,它使用另一种结构SOCKADDR,定义为:

对不起,这是复杂的方式发布在这里,因为它取决于IPv4与IPv6和Windows版本…所以这里是定义的链接:

http://msdn.microsoft.com/en-us/library/ms740496%28v=VS.85%29.aspx

如果你还没有像我那样头晕目眩并且遵循这个定义的迷宫,你可能会注意到检索IP地址的旧的虚线字符串样式是一场噩梦,因为过去使用GetAdaptersInfo()要容易得多.

我的问题是:是否有真正的IP Helper功能可以将IP_ADAPTER_UNICAST_ADDRESS转换为IPv4点分支(或IPv6字符串)?

解决方法

您可以使用 GetIpAddrTable – returned data structure包含一个DWORD dwAddr,它是IPv4地址.第一个链接上的示例代码应该显示您想要的内容.摘要向您展示我的意思:
if ( (dwRetVal = GetIpAddrTable( pIPAddrTable,&dwSize,0 )) != NO_ERROR ) {     printf("GetIpAddrTable Failed with error %d\n",dwRetVal);    if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYstem | FORMAT_MESSAGE_IGnorE_INSERTS,NULL,dwRetVal,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),// Default language                      (LPTSTR) & lpMsgBuf,NULL)) {        printf("\tError: %s",lpMsgBuf);        LocalFree(lpMsgBuf);    }    exit(1);}printf("\tNum Entries: %ld\n",pIPAddrTable->dwNumEntries);for (i=0; i < (int) pIPAddrTable->dwNumEntries; i++) {    printf("\n\tInterface Index[%d]:\t%ld\n",i,pIPAddrTable->table[i].dwIndex);    IPAddr.S_un.S_addr = (u_long) pIPAddrTable->table[i].dwAddr;    printf("\tIP Address[%d]:     \t%s\n",inet_ntoa(IPAddr) );

IP_ADAPTER_UNICAST_ADDRESS在地址中包含SOCKET_ADDRESS,后者又包含lpSockAddr中的LPSOCKADDR – 您可以使用WSAAddressToString将其转换为ipv4字符串形式.

c# – IPAddress.Any和IPAddress.IPv6Any字段有什么区别?

c# – IPAddress.Any和IPAddress.IPv6Any字段有什么区别?

我尝试了以下代码,使我的代码在双栈模式下工作.不幸的是,它没有在双堆栈模式下打开端口.

var listener = new TcpListener(IPAddress.Any,2222);
listener.Server.SetSocketoption(SocketoptionLevel.IPv6,SocketoptionName.IPv6Only,0);
listener.Start();

后来我意识到改为var listener = new TcpListener(IPAddress.IPv6Any,2222);会让它对我有用.究竟有什么区别

IPAddress.Any和IPAddress.IPv6Any字段?

The documentation on MSDN is a bit vague

解决方法

IPAddress.Any适用于所有IPv4接口,IPAddress.IPv6Any适用于所有IPv6接口.

IPAddress.Any是0.0.0.0,IPAddress.IPv6Any是::

如果您只使用IPv6Any而不使用SocketoptionName.IPv6Only,那么您可以在同一个套接字上接受IPv4和IPv6连接.

今天关于ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”的分享就到这里,希望大家有所收获,若想了解更多关于access violation at address in module Read of address、c – SymFromAddr返回ERROR_INVALID_ADDRESS标志,如何在mingw中获取堆栈跟踪?、c – 从GetAdaptersAddresses()获取IP_ADDRESS_STRING?、c# – IPAddress.Any和IPAddress.IPv6Any字段有什么区别?等相关知识,可以在本站进行查询。

本文标签: