Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DNS et serveur web

3 réponses
Avatar
Noex
Hello,

Un pc avec windows_2000 dit PC_A possède deux cartes réseaux, une
configurée en 192.168.1.x relié à une livebox relié à Internet et
l'autre carte réseau en 192.168.2.x relié à un routeur wifi linksys, le
wifi est activé mais le routeur n'est pas relié à internet.

D'un portable je peux via le wifi accéder à PC_A (192.168.1.x), je ne
veux pas que le portable accède à Internet. Par contre je souhaiterais
que toute requête web venant du portable aboutisse sur une adresse ip
qui sera celle de pc_a. Donc, si du portable je tape www.yahoo.fr je
suis envoyé sur 192.168.1.x, sachant que pc_a va accueillir un petit
serveur web.

Comment faire pour que toute requête web aboutisse vers une ip en
particulier ?

Merci.

3 réponses

Avatar
Didier
Noex a écrit :
Hello,

Un pc avec windows_2000 dit PC_A possède deux cartes réseaux, une
configurée en 192.168.1.x relié à une livebox relié à Internet et
l'autre carte réseau en 192.168.2.x relié à un routeur wifi linksys, le
wifi est activé mais le routeur n'est pas relié à internet.

D'un portable je peux via le wifi accéder à PC_A (192.168.1.x), je ne
veux pas que le portable accède à Internet. Par contre je souhaiterais
que toute requête web venant du portable aboutisse sur une adresse ip
qui sera celle de pc_a. Donc, si du portable je tape www.yahoo.fr je
suis envoyé sur 192.168.1.x, sachant que pc_a va accueillir un petit
serveur web.

Comment faire pour que toute requête web aboutisse vers une ip en
particulier ?

Merci.




Une route dans le Linksys ?
Didier.
Avatar
Noex
Didier a présenté l'énoncé suivant :
Noex a écrit :
Hello,

Un pc avec windows_2000 dit PC_A possède deux cartes réseaux, une
configurée en 192.168.1.x relié à une livebox relié à Internet et l'autre
carte réseau en 192.168.2.x relié à un routeur wifi linksys, le wifi est
activé mais le routeur n'est pas relié à internet.

D'un portable je peux via le wifi accéder à PC_A (192.168.1.x), je ne veux
pas que le portable accède à Internet. Par contre je souhaiterais que toute
requête web venant du portable aboutisse sur une adresse ip qui sera celle
de pc_a. Donc, si du portable je tape www.yahoo.fr je suis envoyé sur
192.168.1.x, sachant que pc_a va accueillir un petit serveur web.

Comment faire pour que toute requête web aboutisse vers une ip en
particulier ?

Merci.




Une route dans le Linksys ?
Didier.



Comment ça ? Dans le linksys je peux configurer l'adresse du serveur
DNS. Donc, quand le portable se connecte en wifi, avec le serveur DHCP
il récupère le serveur DNS. Pour l'instant j'ai mis 192.168.1.5, donc
l'adresse de PC_A. Maintenant sur PC_A, les requêtes doivent être
transformées, de www.xxxx.xx en 192.168.1.5 systématiquement.

Par contre ajouter une route de quoi à quoi ?
Avatar
Noex
Voilà, j'ai fini par trouver un programme qui fait du fakedns



Suffit de télécharger le compilateur python pour windows, le code
ci-dessous (braco à l'auteur) est à souvegarder, au format txt ça
marche, (exemple fakedns.txt) , et lancez:

python.exe fakedns.txt

Ensuite, n'importe quelle requête DNS pointe vers 192.168.2.40

et ça marche.


import socket

class DNSQuery:
def __init__(self, data):
self.dataÚta
self.dominio=''

tipo = (ord(data[2]) >> 3) & 15 # Opcode bits
if tipo == 0: # Standard query
ini
lon=ord(data[ini])
while lon != 0:
self.dominio+Úta[ini+1:ini+lon+1]+'.'
ini+=lon+1
lon=ord(data[ini])

def respuesta(self, ip):
packet=''
if self.dominio:
packet+=self.data[:2] + "x81x80"
packet+=self.data[4:6] + self.data[4:6] + 'x00x00x00x00' #
Questions and Answers Counts
packet+=self.data[12:] #
Original Domain Name Question
packet+='xc0x0c' #
Pointer to domain name
packet+='x00x01x00x01x00x00x00x3cx00x04' #
Response type, ttl and resource data length -> 4 bytes
packet+=str.join('',map(lambda x: chr(int(x)), ip.split('.'))) #
4bytes of IP
return packet

if __name__ == '__main__':
ip='192.168.2.40'
print 'pyminifakeDNS:: dom.query. 60 IN A %s' % ip

udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udps.bind(('',53))

try:
while 1:
data, addr = udps.recvfrom(1024)
p=DNSQuery(data)
udps.sendto(p.respuesta(ip), addr)
print 'Respuesta: %s -> %s' % (p.dominio, ip)
except KeyboardInterrupt:
print 'Finalizando'
udps.close()