when connecting to https by IP address, client hello message has a server_name SNI block.

When connecting to https by IP address `requests.get("https://8.8.8.8/")`, the client hello message includes a server_name extension

## Expected Result

No server_name extension in the client hello. The server I am talking to immediately closes the connection when it sees a server_name block with a literal ipv4 address. The [SNI Spec](https://tools.ietf.org/html/rfc3546#section-3.1) says that `Literal IPv4 and IPv6 addresses are not permitted in "HostName".`

## Actual Result

There was a server_name extension in the client hello, and the server I am talking to immediately closes the connection.

## Reproduction Steps

1. Set up wireshark monitoring packets.
2. ```python
    import requests
    requests.get("https://8.8.8.8")
    ```
3. Observe the client hello message in wireshark:
```
Frame 570: 571 bytes on wire (4568 bits), 571 bytes captured (4568 bits) on interface 0
Ethernet II, Src: BizlinkK_XX:XX:XX (9c:eb:e8:XX:XX:XX), Dst: JuniperN_XX:XX:XX (08:81:f4:XX:XX:XX)
Internet Protocol Version 4, Src: 192.168.89.18, Dst: 8.8.8.8
Transmission Control Protocol, Src Port: 4811, Dst Port: 443, Seq: 1, Ack: 1, Len: 517
Secure Sockets Layer
    TLSv1.2 Record Layer: Handshake Protocol: Client Hello
        Content Type: Handshake (22)
        Version: TLS 1.0 (0x0301)
        Length: 512
        Handshake Protocol: Client Hello
            Handshake Type: Client Hello (1)
            Length: 508
            Version: TLS 1.2 (0x0303)
            Random
            Session ID Length: 0
            Cipher Suites Length: 110
            Cipher Suites (55 suites)
            Compression Methods Length: 1
            Compression Methods (1 method)
            Extensions Length: 357
            Extension: server_name
                Type: server_name (0x0000)
                Length: 12
                Server Name Indication extension
                    Server Name list length: 10
                    Server Name Type: host_name (0)
                    Server Name length: 7
                    Server Name: 8.8.8.8
            Extension: ec_point_formats
            Extension: elliptic_curves
            Extension: SessionTicket TLS
            Extension: signature_algorithms
            Extension: Heartbeat
            Extension: Padding
```


## System Information
Windows 10 creators update, windows subsystem for linux.

```
$ uname -a
Linux ZeroGravitas 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:        16.04
Codename:       xenial
$ apt policy python-requests
python-requests:
  Installed: 2.9.1-3
  Candidate: 2.9.1-3
  Version table:
 *** 2.9.1-3 500
        500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status
```

Is is easy enough for me to work around this (refer to the machine by name), but it took me ages to figure out what was going wrong, so here is something hopefully googleable.

The server I was connecting to is Windows Server 2016 Datacenter (azure VM).

Yeah, this is a known limitation of Requests that boils down to the absence of a reliable tool for distinguishing IP addresses and hostnames. I think a sensible enhancement might be to use the `ipaddress` module if it's present in your environment, but this enhancement would have to be applied in urllib3. Do you mind opening a report over there?