ip addresses – Why do websites block suspected abusers from READ access?

Some websites block Tor, proxies and users suspected of being robots to prevent abuse. I find this wrong, because the overwhelming majority of such users are honest users who are paranoid about privacy. But on top of that, many sites, such as Reddit and Quora, deny such users read access. I am asked to prove I’m a human to search for questions tagged cgtk right here on StackExchange. Honest proxy users or trolls, they cannot abuse the site just by viewing or seaching for specific questions. I do not see searching or viewing gives even bots, spammers, or trolls an opportunity to abuse the site, so why are suspected bots or proxy users blocked from passively viewing the sites?

computer networks – Why should you use IP addresses instead of hostnames when using Sockets?

Thanks for contributing an answer to Computer Science Stack Exchange!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.

To learn more, see our tips on writing great answers.

vanity address – Are these Addresses Invalid ones?

You’re correct, they’re valid addresses, just that nobody will ever have the private key that corresponds to them.

As for why people send money to them… sometimes just for fun, and sometimes to encode data on the blockchain. This particular transaction might be a dust attack, of which the goal is to uncover which addresses are owned by the same owner, in case the owner attempts to spend the dust along with other coins in their wallet together.

bitcoin core – How to derive BTC m44 addresses from xpub?

I checked Swan’s Address Derivation Library https://github.com/swan-bitcoin/xpub-tool.

I try to get m44 address, but I got m84. Why? Do you know is it any parameter to force return m44? I tried to pass path: "m/44'/0'/0'/0", but it did not help.

Do you have any idea?


export const addressFromXPub = (key) => {
      extPubKey: key,
      network: "mainnet",
      addressCount: 3,

networking – getnameinfo 5 second stall for link local IPv6 addresses on macOS 11.2

Resolving a link local IPv6 address, e.g. “fe80:0:0:0:1df5:94d:4c6c:6b43” using the getnameinfo function on macOS 11.2 (Big Sur) results in a 5 second wait.

I used this C code to check:

typedef union {
    struct sockaddr     sa;
    struct sockaddr_in  sa4;
    struct sockaddr_in6 sa6;

int main(int argc, char *argv()) {

  unsigned char ipaddress(sizeof(struct in6_addr));
  inet_pton(AF_INET6, "fe80:0:0:0:1df5:94d:4c6c:6b43", ipaddress);
  memset((void *)&sa, 0, sizeof(SOCKETADDRESS)); 
  memcpy((void *)&sa.sa6.sin6_addr, ipaddress, sizeof(struct in6_addr));
  sa.sa6.sin6_family = AF_INET6;
  char host(NI_MAXHOST + 1);

  int code = getnameinfo(&sa.sa, sizeof(struct sockaddr_in6), host, sizeof(host), NULL, 0, NI_NAMEREQD);

  printf("code: %d, error: %s, host: %sn", code, gai_strerror(code), host);

  return 0;

Running this returns code: 8, error: nodename nor servname provided, or not known, host:

The problem is however that there’s a 5 second stall. I reproduced this on 3 different macOS machines.

If I look at the source of getnameinfo, e.g. via https://opensource.apple.com/source/lukemftp/lukemftp-15/tnftp/libnetbsd/getnameinfo.c.auto.html it looks like it should instantly return via these two fragments:

if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
    flags |= NI_NUMERICHOST;


/* NUMERICHOST and NAMEREQD conflicts with each other */
if (flags & NI_NAMEREQD)
    return ENI_NOHOSTNAME;

Now getnameinfo.c,v 1.6 may not be the latest one as used in macOS 11.2/Darwin 20.3.0, so I’m wondering:

  • Does anyone know where the 5 second wait comes from?
  • How can I prevent this wait? I tried adding this IP in various forms to /etc/hosts but getnameinfo is not picking it up from there.

address – MultiBit with multiple addresses to Electrum

I have an old MultiBit Classic wallet, where I have received some BTC to two addresses (same wallet). When I import the private key from MultiBit (seems it’s the compressed variant) to Electrum desktop, Electrum imports it correctly, but shows only transactions and balance from the first address. Transactions received by the second address (which happened years later) are not shown and I can’t import the second address into Electrum, because the wallet is non-deterministic.

I would like to simply send all the money from MultiBit to a new Electrum wallet, but the old MultiBit has trouble synchronising with network.

Please help – how to move all the BTC associated with my private key to a new Electrum wallet?

Python-nmap network scanner does not allow input of ip range, only specific IP addresses


# run with sudo Python3 Scanner.py

# pip3 install python-nmap
import nmap

scanner = nmap.PortScanner()

print("Welcome, this is a simple nmap automation tool")
print("Currently installed nmap version: ", scanner.nmap_version())

ip_addr = ''  # default ip address
prompt_str = "Please enter the IP address you want to scan ("+ip_addr+"): "
ip_addr = input(prompt_str) or ip_addr
print("Selected IP: ", ip_addr)

resp = input("""nEnter the scan type you want to run
                1) SYN ACK Scan
                2) UDP Scan
                3) Comprehensive Scan n""")
print("You have selected option: ", resp)

def run_scan(args: str, port_range: str = '1-1024'):
    scanner.scan(ip_addr, port_range, args)
    print("Ip Status: ", scanner(ip_addr).state())
    protocols = scanner(ip_addr).all_protocols()
    for protocol in protocols:
        print("("+protocol+") open ports: ", scanner(ip_addr)(protocol).keys())

# -v verbose
if resp == '1':
    # -sS TCP SYN scan
    run_scan('-v -sS')
elif resp == '2':
    # -sU UDP SYN scan
    run_scan('-v -sU')
elif resp == '3':
    # -sS TCP SYN scan
    # -sV Version detection
    # -sC script scan using the default set of scripts
    # -A Aggressive scan options
    # -O Enable OS detection
    run_scan('-v -sS -sV -sC -A -O')
    print("Please enter a valid option")

For instance, when I try entering it outputs:

{'udp': {'method': 'udp', 'services': '1-1024'}}
Traceback (most recent call last):
  File "Scanner.py", line 37, in <module>
    print("IP Status: ", scanner(ip_address).state())
  File "/usr/local/lib/python3.8/dist-packages/nmap/nmap.py", line 568, in __getitem__
    return self._scan_result('scan')(host)
KeyError: ''

But entering a single address works fine.

How do I allow it to take in ranges?

sharepoint online – How do I create an array of text email addresses to send a message from Flow?

I have 10 text fields in my SharePoint list which may contain:

  1. An email address
  2. A note of “Email Missing” if an address is expected but not available
  3. Null/empty

I want to send an email to any of the 10 potential columns that have a valid address (scenario 1). If the field contains “Email Missing” or is null, I obviously can’t send for that column.

I initially thought I could just use the dynamic content from my SharePoint list in my BCC field (so the recipients can’t see the other recipients’ addresses) with semicolons between each, but got an error when any of them returned “Email Missing” where it was expecting an email address.

I have cobbled together a clumsy set of conditions to check, for each field, if it’s either null or says “Email Missing”, and to send only if it’s valid, but it’s very inefficient by the time I get through all 10, and if I need to later change the content of the email message, I need to update it after every one of these conditions when I send the message.

So, it seems that an array would work, but I haven’t used them in Flow. Can anyone help outline how to:

  1. Set up an array to hold all of the existing email addresses from my 10 text fields (while not including any with “Email Missing” text)
  2. How to then call the contents of that array to send an email message to those recipients

I am triggering the flow based on when an item or file is modified, so when the user sets the “Action” field to “Ready” and saves the list item, the flow is launched. That part is working fine – I just need help to collect and use the email addresses.


transactions – How can a seed generate the wrong addresses?

It is difficult to tell you exactly what happened, but if you have the correct seed, you do not need to worry. Did you already send the btc to Coinbase? If you sent it to Coinbase to trade, then it obviously wont be in your wallet anymore.

If you didn’t send to coinbase, then it is still sitting in the same address. You can ascertain this by looking up your address or txid in the blockchain. If you haven’t sent the btc, then check your balance in the original Coinbase app. If it displays your balance, you’re all good, but when you click “receive” it will generate a NEW address, not the same one every time (see @ieatpizza’s answer).

If you don’t see your balance in the app, you probably entered the wrong seed. Did you use a password in addition to the seed? Wallets allow users to add an extra (arbitrary) password to their seed phrase for uniqueness and extra security. In that case, loading the wallet from the seed phrase without the password will yield a valid, and empty wallet that is different from yours.

Things you can try:

  1. download a different wallet, such as BlueWallet, and enter the seed there. Enter it with just the seed, and alternatively, with the seed AND your coinbase password appended to the end of the list.

Good luck!

transactions – What are the benifits of using Compressed Bitcoin Addresses rather than Uncompressed addresses if same length?

An address contains a hash of something, usually of the public key. For signature verification, a signature, the signed data and the public key is needed. Since inverting a hash is considered impossible the public key is revealed and embedded in the blockchain every time a 1... address spends an Unspent Output paid to it.

Hashes are of constant length, but the public key saved in the blockchain to spend isn’t. There is no special handling code that causes uncompressed public keys to be compressed before they make it to the blockchain either. Hence uncompressed public keys take larger space and their transactions are more expensive.